|
|
|
@@ -0,0 +1,31 @@ |
|
|
|
第四届计图人工智能挑战赛-开放域少样本视觉分类赛题-B榜代码 |
|
|
|
|
|
|
|
环境配置: |
|
|
|
- ubuntu 18.04 LTS |
|
|
|
- python >= 3.7 |
|
|
|
- jittor >= 1.3.0 |
|
|
|
执行以下命令安装 python 依赖 |
|
|
|
``` |
|
|
|
pip install -r requirements.txt |
|
|
|
``` |
|
|
|
|
|
|
|
方法的详细思路 |
|
|
|
1.构建训练数据集和验证数据集: |
|
|
|
在官方提供的训练数据集中,对于每个类别,从数据集中挑出任意4张图片训练模型,共1496张图片,构成模型训练集;剩余180233张图片作为模型验证集,用验证集中所有的数据对模型进行测试; |
|
|
|
|
|
|
|
2.创建AdanBelief优化器: |
|
|
|
该项目使用了自定义优化器AdanBelief,在计图架构根目录下的optim.py文件中,自己编写优化器AdanBelief,该优化器是Adan优化器和AdaBelief优化器的融合,在Adan优化器中融入"Belief"增强训练模型的泛化性能, |
|
|
|
所以要用开源的optim.py文件替换计图架构根目录下的optim.py文件; |
|
|
|
|
|
|
|
3.利用AdanBelief优化器训练ViT-B/32版本的CLIP模型 |
|
|
|
首先冻结OpenAI官方预训练的ViT-B/32版本的CLIP模型中的全部图像层,再利用AdanBelief优化器训练模型,训练300个epoch,每隔5个epoch进行对模型进行保存,模型保存在/ckptFE/中,具体训练参数可参考train_clip.py; |
|
|
|
|
|
|
|
4.验证模型精度 |
|
|
|
当完成CLIP模型训练后,运行test_clip.py,用验证集中所有的数据和自定义的提示词对保存的模型(['min_loss', 20, 50, 70, 90, 100, 150, 200, 250, 300])进行测试,测试结果保存在/ckptFE/test.log中; |
|
|
|
|
|
|
|
5.测试模型精度 |
|
|
|
选取验证精度最好的模型和对应的提示词,运行test.py文件,在官方给定的数据中进行测试,输出"result.txt"。开放域少样本视觉分类赛题-B榜选择“epoch_90.pth”模型和“1. basic: a photo of”提示词,提交官方系统测试,top1的精度是0.7103。 |
|
|
|
|
|
|
|
使用的预训练模型种类:ViT-B/32版本的CLIP模型的Jittor版(https://github.com/uyzhang/JCLIP) |
|
|
|
|
|
|
|
最终的参数量之和:151.28M |