项目简介
vit_large_patch14_clip_336.openai_ft_in12k_in1k 是一个由 OpenAI 开发的视觉转换器(Vision Transformer,ViT)图像分类模型。该模型初始预训练于 WIT-400M 图文对,然后在 timm
库中经过 ImageNet-12k 和 ImageNet-1k 数据集的微调。ViT 模型在图像识别任务中应用广泛,以其高效的处理能力备受关注。
模型详细信息
模型类型
该项目属于图像分类和特征骨干模型。
模型参数
- 参数数量: 304.5 百万
- 计算量(GMACs): 174.7
- 激活值数量: 128.2 百万
- 图像输入尺寸: 336 x 336
相关论文
- 《从自然语言监督中学习可迁移的视觉模型》: 探索如何通过语言监督来提升视觉模型的迁移性能。
- 《对比语言-图像学习的可复现尺度规律》: 研究在不同规模下对比学习的效果。
- 《一张图片抵得上16x16个字: 规模化的图像识别转换器》: 介绍了 Vision Transformer 在图像识别中的创新。
数据集
- 使用的数据集主要为 ImageNet-1k。
- 预训练数据集包括 WIT-400M 和 ImageNet-12k。
模型使用方法
图像分类
用户能够轻松使用 timm
库,在 Python 环境下加载并应用此模型进行图像分类。以下是一个例子:
from urllib.request import urlopen
from PIL import Image
import timm
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
model = timm.create_model('vit_large_patch14_clip_336.openai_ft_in12k_in1k', pretrained=True)
model = model.eval()
# 获取模型专用的变换(如标准化、调整尺寸)
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)
output = model(transforms(img).unsqueeze(0)) # 将单幅图像扩展为批尺寸为1
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
图像嵌入
模型不仅仅限于分类任务,还可以用于生成图像嵌入,用于其它深度学习任务:
from urllib.request import urlopen
from PIL import Image
import timm
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
model = timm.create_model(
'vit_large_patch14_clip_336.openai_ft_in12k_in1k',
pretrained=True,
num_classes=0, # 移除分类器线性层
)
model = model.eval()
# 获取模型专用的变换(如标准化、调整尺寸)
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)
output = model(transforms(img).unsqueeze(0)) # 输出为 (batch_size, num_features) 形状的张量
# 等价的方式(不需要设置 num_classes=0)
output = model.forward_features(transforms(img).unsqueeze(0))
output = model.forward_head(output, pre_logits=True)
模型对比
用户可以在 timm
模型结果中探索相关数据集和模型的运行指标,了解该模型与其他模型在不同任务中的表现差异。
引用格式
如果在研究中使用了该模型,研究人员可以参考以下引用格式:
@inproceedings{Radford2021LearningTV,
title={Learning Transferable Visual Models From Natural Language Supervision},
author={Alec Radford and Jong Wook Kim and Chris Hallacy and A. Ramesh and Gabriel Goh and Sandhini Agarwal and Girish Sastry and Amanda Askell and Pamela Mishkin and Jack Clark and Gretchen Krueger and Ilya Sutskever},
booktitle={ICML},
year={2021}
}
@article{cherti2022reproducible,
title={Reproducible scaling laws for contrastive language-image learning},
author={Cherti, Mehdi and Beaumont, Romain and Wightman, Ross and Wortsman, Mitchell and Ilharco, Gabriel and Gordon, Cade and Schuhmann, Christoph and Schmidt, Ludwig and Jitsev, Jenia},
journal={arXiv preprint arXiv:2212.07143},
year={2022}
}
@article{dosovitskiy2020vit,
title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale},
author={Dosovitskiy, Alexey and Beyer, Lucas and Kolesnikov, Alexander and Weissenborn, Dirk and Zhai, Xiaohua and Unterthiner, Thomas and Dehghani, Mostafa and Minderer, Matthias and Heigold, Georg and Gelly, Sylvain and Uszkoreit, Jakob and Houlsby, Neil},
journal={ICLR},
year={2021}
}
通过这种通俗易懂的介绍,读者们能够更清晰地理解 vit_large_patch14_clip_336.openai_ft_in12k_in1k 项目的核心内容和应用框架,方便在学术研究和实际应用中使用。