模型:
google/vit-base-patch32-384
视觉变换器(ViT)模型在解析度为224x224的ImageNet-21k(1400万张图片,21843个类别)上进行了预训练,并在解析度为384x384的ImageNet 2012(100万张图片,1000个类别)上进行了微调。它首次出现在Dosovitskiy等人的论文 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 中,并于 this repository 首次发布。然而,权重是从Ross Wightman转换的,他已经将权重从JAX转换到了PyTorch。特此感谢他。
免责声明:发布ViT的团队没有为此模型编写模型卡片,因此该模型卡片是由Hugging Face团队编写的。
视觉变换器(ViT)是一个在大量图像上以监督方式进行预训练(类似于BERT的)的transformer编码器模型,即ImageNet-21k,分辨率为224x224像素。然后,该模型在ImageNet(也称为ILSVRC2012),一个包含了100万张图片和1000个类别的数据集上进行了微调,分辨率为384x384。
图像以固定大小的patch序列(分辨率为32x32)的形式呈现给模型,这些patch被线性嵌入。同时,在序列的开头添加了一个[CLS]标记,以用于分类任务。在将序列输入Transformer编码器的层之前,还会添加绝对位置嵌入。
通过预训练模型,它学习了图像的内部表示,然后可以用于提取对下游任务有用的特征:例如,如果您有一个带有标签的数据集,您可以在预训练编码器的顶部放置一个线性层来训练一个标准分类器。通常将线性层放置在[CLS]标记的顶部,因为该标记的最后隐藏状态可以看作是整个图像的表示。
您可以使用原始模型进行图像分类。查看 model hub 以查找您感兴趣的任务的微调版本。
以下是使用该模型将COCO 2017数据集的图像分类为其中一个1000个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 # model predicts one of the 1000 ImageNet classes predicted_class_idx = logits.argmax(-1).item() print("Predicted class:", model.config.id2label[predicted_class_idx])
目前,特征提取器和模型都支持PyTorch。Tensorflow和JAX/FLAX即将推出,ViTFeatureExtractor的API可能会有所改变。
ViT模型是在 ImageNet-21k 上进行预训练的,该数据集由1400万张图片和21k个类别组成,并在 ImageNet 上进行微调,该数据集由100万张图片和1k个类别组成。
有关训练/验证期间图像预处理的详细信息可在 here 中找到。
图像被调整大小/重新缩放为相同的分辨率(在预训练期间为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)下获得的。当然,增加模型大小将导致更好的性能。
@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} }