许可协议:apache-2.0
标签:
- 视觉
- 图像分类
数据集:
- imagenet-1k
- imagenet-21k
Vision Transformer(基础规模模型)
Vision Transformer(ViT)模型在ImageNet-21k(1400万张图像,21,843个类别)上以224x224分辨率进行预训练,并在ImageNet 2012(100万张图像,1,000个类别)上以384x384分辨率进行微调。该模型由Dosovitskiy等人在论文《一张图像等价于16x16个词:大规模图像识别的Transformer》中提出,并首次发布于此代码库。不过,权重是由Ross Wightman从timm代码库转换而来,他此前已将权重从JAX转换为PyTorch。荣誉归于他。
免责声明:发布ViT的团队未为此模型编写模型卡,因此本模型卡由Hugging Face团队撰写。
模型描述
Vision Transformer(ViT)是一种类似于BERT的Transformer编码器模型,通过监督方式在大量图像(即ImageNet-21k)上以224x224像素分辨率进行预训练。随后,模型在更高分辨率(384x384)的ImageNet(也称为ILSVRC2012)数据集上微调,该数据集包含100万张图像和1,000个类别。
图像以固定大小的块序列(分辨率为32x32)呈现给模型,这些块经过线性嵌入。序列开头还添加了一个[CLS]标记,用于分类任务。在将序列输入Transformer编码器层之前,还会添加绝对位置嵌入。
通过预训练,模型学习到图像的内在表示,可用于提取对下游任务有用的特征:例如,如果您有一个带标签的图像数据集,可以在预训练编码器顶部添加一个线性层来训练标准分类器。通常会在[CLS]标记顶部放置一个线性层,因为该标记的最后隐藏状态可视为整张图像的表示。
预期用途与限制
您可以将原始模型用于图像分类。查看模型中心以寻找您感兴趣任务的微调版本。
使用方法
以下是如何使用此模型将COCO 2017数据集中的一张图像分类为1,000个ImageNet类别之一:
from transformers import ViTFeatureExtractor, ViTForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch32-384')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch32-384')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("预测类别:", model.config.id2label[predicted_class_idx])
目前,特征提取器和模型均支持PyTorch。TensorFlow和JAX/FLAX即将推出,ViTFeatureExtractor的API可能会更改。
训练数据
ViT模型在ImageNet-21k上预训练,该数据集包含1400万张图像和21k类别,并在ImageNet上微调,该数据集包含100万张图像和1k类别。
训练流程
预处理
训练/验证期间图像预处理的具体细节可在此处找到。
图像被调整/缩放到相同分辨率(预训练时为224x224,微调时为384x384),并在RGB通道上以均值(0.5, 0.5, 0.5)和标准差(0.5, 0.5, 0.5)进行归一化。
预训练
模型在TPUv3硬件(8核)上训练。所有模型变体均以4096的批量大小和10k步的学习率预热进行训练。对于ImageNet,作者发现额外应用全局范数为1的梯度裁剪有益。预训练分辨率为224。
评估结果
关于多个图像分类基准的评估结果,请参阅原论文的表2和表5。注意,微调时,更高分辨率(384x384)能获得最佳结果。当然,增大模型规模会提升性能。
BibTeX条目及引用信息
@misc{https://doi.org/10.48550/arxiv.2010.11929,
doi = {10.48550/ARXIV.2010.11929},
url = {https://arxiv.org/abs/2010.11929},
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},
keywords = {Computer Vision and Pattern Recognition (cs.CV), Artificial Intelligence (cs.AI), Machine Learning (cs.LG), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale},
publisher = {arXiv},
year = {2020},
copyright = {arXiv.org perpetual, non-exclusive license}
}
@inproceedings{deng2009imagenet,
title={Imagenet: A large-scale hierarchical image database},
author={Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and Fei-Fei, Li},
booktitle={2009 IEEE conference on computer vision and pattern recognition},
pages={248--255},
year={2009},
organization={Ieee}
}