目录
目录README.md

第四届计图人工智能挑战赛

Jittor 开放域少样本视觉分类比赛-[吉伊我也不会啊]战队-B榜

简介

本项目为第四届计图挑战赛计图 - 开放域少样本视觉分类赛题的代码实现。

在人工智能快速发展中,视觉语言模型在计算机视觉领域表现出色,但数据标注成本高,特定领域表现需提升。如何用少量数据提高模型在多个领域的表现成为研究热点。参考[2103.00020v1] Learning Transferable Visual Models From Natural Language Supervision (arxiv.org)

本项目的特点是:

  • 采用clip中的模型对少量多领域训练样本处理

  • 集成多个模型(如ViT-B-16, ViT-L-14-336px, ViT-B-32)来提升预测准确性

  • CLIP可以直接实现zero-shot的图像分类,即不需要任何训练和微调,这也是CLIP亮点和强大之处。用CLIP实现zero-shot分类只需要简单的两步:

    根据任务的分类标签构建每个类别的描述文本:A photo of xxx,然后将这些文本送入Text Encoder得到对应的文本特征。如果类别数目为n,那么将得到n个文本特征; 将要预测的图像送入Image Encoder得到图像特征,然后与n个文本特征计算缩放的余弦相似度(和训练过程保持一致),然后选择相似度最大的文本对应的类别作为图像分类预测结果。进一步地,可以将这些相似度看成logits,送入softmax后可以到每个类别的预测概率。 ​

安装

本项目在 1*ascend-d910b|CPU: 24核 192GB上运行爆内存

建议复现者换更有的更强环境(时间根据few-shot训练集的大小和模型大小)

运行环境

  • ubuntu 20.04 LTS
  • python >= 3.9
  • jittor >= 1.3.0

安装依赖

执行以下命令安装 python 依赖

pip install jittor
pip install ftfy regex tqdm
python setup.py develop

预训练模型

**ViT-B/16**(Base-size, Patch size 16x16)

  • 参数量:约 86M

**ViT-B/32**(Base-size, Patch size 32x32)

  • 参数量:约 87M
  • 模型大小:约 340 MB

**ViT-L/14-336px**(Large-size, Patch size 14x14)

  • 参数量 : 307M

  • 模型大小: 约为 1.5 GB

  • 表现: 更高的图像分辨率通常能提高分类精度,特别是对于细节较多的图像。

    参数数量之和

    使用到的模型 ViT-B-16.pkl + ViT-L-14-336px.pkl + ViT-B-32.pkl = 86MB + 307MB + 87MB = 480MB < 500MB

训练

单卡训练:

bash train.sh

推理

生成result.txt上的结果:

python test.py
注意

数据集的位置在root/<在这里>

  1. 下载好预训练模型使用transfrom.py转成可以被解析使用的.pkl格式
  2. 使用demo.py测试,转换后的模型是否可以正常使用
  3. 可以直接推理得到result.txt,也可对预训练模型进行训练得到resuli.txt

QQ联系方式

QQ:2052260648

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号