Skip to content

njucckevin/nlpSummerCamp2022_caption

Repository files navigation

image caption框架

├── config.py	# 各类参数
├── data	# 数据,原始数据为带有annotations的4个json文件
│   ├── caption_test_a_annotations_20180103.json
│   ├── caption_test_b_annotations_20180103.json
│   ├── caption_train_annotations_20170902.json
│   ├── caption_validation_annotations_20170910.json
│   ├── testa.json
│   ├── testa_pycoco.json
│   ├── testb.json
│   ├── testb_pycoco.json
│   ├── train.json
│   ├── val.json
│   ├── val_pycoco.json
│   └── vocab.pkl
├── data_load.py	# dataloader
├── generate_examples.py	# 为测试样例生成caption
├── models	# 模型
│   ├── Adaptive_Attention
│   │   ├── __init__.py
│   │   └── ada_att.py
│   ├── BUTD
│   │   ├── __init__.py
│   │   └── butd.py
│   ├── Show_Attend_Tell
│   │   ├── __init__.py
│   │   └── sat.py
│   └── Show_and_Tell
│       ├── __init__.py
│       └── nic.py
├── test.py	# 测试
├── train.py	# 三种训练模式:普通、自动混合精度(mp)、分布式+自动混合精度(ddp)
├── train_ddp.py
├── train_mp.py
└── utils	# 辅助代码&工具
    ├── beamsearch.py	# beamsearch
    ├── eval.py		# 为val&test集生成结果并计算指标
    ├── import_models.py	# 导入各类模型
    ├── log.py		# 训练日志记录
    ├── loss.py		# 损失函数
    ├── prepro_ref_pycoco.py	# 将reference转换为便于cocoEval工具计算指标的形式
    ├── prepro_tokenize.py	# 整理原始数据集并完成分词
    └── vocab.py	# 生成单词表
  • step1:prepro_tokenize.py,整理原始数据集并完成分词,保存为train/val/test.json
  • step2:vocab.py,构建单词表vocab.pkl
  • step3:prepro_ref_pycoco.py,将reference转换为便于cocoEval工具计算指标的形式train/val/test_pycoco.json
  • step4:之后即可以开始训练,eg:CUDA_VISIBLE_DEVICES=0 python train.py --mode train --model AdaAtt --id my_model --batch_size 100;训练时要指定的参数参考config.py、train.py和train_ddp.py;image_dir代表图像(特征)保存的路径,lig_dir代表训练日志和结果保存的路径,路径信息可参考服务器代码的路径
  • step5:训练过程中可通过利用tensorboard查看训练过程并自行决定何时终止
  • step6:利用test.py得到在测试集上的结果

About

An Image Caption Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages