Skip to content

cattidea/Oscar-Paddle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oscar-Paddle

基于paddle框架的Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks实现

一、简介

本项目使用paddle框架复现Oscar模型。该模型借助目标类别Object Tags来实现更好的视觉和文本的跨模态对齐。作者引入Object Tags并基于此提出了两个损失函数进行大规模的预训练,使得能够学习到文本和图像区域的语义对齐表征。实验表明,作者在多个 vision-language 任务上得到了有效的提升。

**注: **

AI Studio多卡项目地址: https://aistudio.baidu.com/aistudio/clusterprojectdetail/3377920.

AI Studio单卡项目地址: https://aistudio.baidu.com/aistudio/projectdetail/3395242.

您可以使用AI Studio平台在线运行该项目!

论文:

  • [1] X. Li, X. Yin, C. Li, and et. al, "Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks", ECCV, 2020.

参考项目:

二、复现精度

本项目验证其在图文检索Image-Text Retrieval下游任务中的性能,所使用的数据集为COCO2014,复现精度如下(参考原论文Table 2)。

Text Retrieval Image Retrieval
R@1 R@5 R@10 R@1 R@5 R@10
原论文 89.8 98.8 99.7 78.2 95.8 98.3
复现精度 90.4 98.5 99.8 78.1 96.2 98.2

三、数据集

本项目所使用的数据集为COCO2014。该数据集共包含123287张图像,每张图像对应5个标题。训练集、验证集和测试集分别为113287、5000、5000张图像及其对应的标题。本项目使用预提取的bottom-up特征,可以从这里下载得到。

四、环境依赖

  • 硬件:CPU、GPU

  • 软件:

    • Python 3.7
    • PaddlePaddle-GPU == 2.2.1
    • PaddleNLP==2.2.1

五、快速开始

step1: clone

# clone this repo
git clone https://github.com/cattidea/Oscar-Paddle.git
cd Oscar-Paddle

step2: 安装环境及依赖

pip install -r requirements.txt

step3: 挂载数据

# 相关数据集已上传至Aistudio
# 详情见: https://aistudio.baidu.com/aistudio/datasetdetail/124153

# paddle格式的预训练权重也已上传至Aistudio
# 详情见: https://aistudio.baidu.com/aistudio/datasetdetail/124186

# 下载或挂载数据集和预训练权重之后
# 需要修改配置文件(configs/retrieval_train.yaml和configs/retrieval_test.yaml)
# 的一些参数: DATA_DIR (数据集目录), PRETRAINED-DIR (预训练权重路径)

step4: 训练

export PYTHONPATH=$PWD:$PYTHONPATH
CUDA_VISIBLE_DEVICES='0, 1, 2, 3' python -m paddle.distributed.launch tools/train_retrieval.py --cfg_file configs/retrieval_train.yaml

step5: 测试

# 测试之前,需要在configs/retrieval_test.yaml中指定测试的模型 (即修改EVAL-CHECKPOINT_DIR参数).
python tools/eval_retrieval.py --cfg_file configs/retrieval_test.yaml

使用预训练模型进行预测

# 下载训练好的模型权重
# https://aistudio.baidu.com/aistudio/datasetdetail/124760
# 执行Step5进行测试

六、代码结构与详细说明

├── config                    # 默认配置文件夹
│   └── default.py            # 默认配置参数
├── configs                   # 指定配置文件夹
│   └── retrieval_train.yaml  # 训练配置文件
│   └── retrieval_test.yaml   # 测试配置文件
├── datasets
│   └── retrieval_dataset.py  # 数据加载
├── models
│   └── bert.py               # bert模型
│   └── oscar.py              # oscar模型
├── solvers
│   └── optimizer.py          # 优化器
│   └── scheduler.py          # 学习率策略
├── tests                     # 测试文件
├── tools
│   └── train_retrieval.py    # 训练脚本
│   └── eval_retrieval.py     # 测试脚本
└── requirement.txt           # 依赖包

七、模型信息

关于模型的其他信息,可以参考下表:

信息 说明
发布者 fuqianya
时间 2022.01
框架版本 Paddle 2.2.1
应用场景 多模态
支持硬件 GPU、CPU
下载链接 预训练模型 | 训练日志

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published