模型:
google/vit-base-patch16-224
任务:
图像分类许可:
apache-2.0Vision Transformer (ViT)模型在ImageNet-21k数据集(1400万张图像,21,843类别)上进行了预训练,分辨率为224x224,并在ImageNet 2012数据集(100万张图像,1,000类别)上进行了微调,分辨率为224x224。该模型是Dosovitskiy等人在 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 中提出的,并在 this repository 中首次发布。然而,权重已经从JAX转换为PyTorch格式的 timm repository 由Ross Wightman进行了转换。感谢他的贡献。
声明:ViT发布团队没有为此模型编写模型卡片,所以此模型卡片是由Hugging Face团队编写的。
Vision Transformer (ViT)是一个基于transformer编码器的模型(类似于BERT),以有监督的方式在一个大型图像集合(即ImageNet-21k)上进行预训练,分辨率为224x224像素。接下来,该模型在ImageNet上进行了微调(也称为ILSVRC2012),该数据集由100万张图像和1,000类别组成,分辨率也是224x224。
图像以固定大小的patch序列(分辨率为16x16)的形式呈现给模型,然后进行线性嵌入。还将一个[CLS]标记添加到序列的开头,以在分类任务中使用。在将序列馈送到Transformer编码器的层之前,还添加了绝对位置嵌入。
通过预训练模型,它学习了图像的内部表示,可以用于提取用于下游任务的特征:例如,如果您有一个带标签的图像数据集,可以通过在预训练的编码器之上放置一个线性层来训练一个标准分类器。通常将线性层放置在[CLS]标记之上,因为该标记的最后隐藏状态可以看作是整个图像的表示。
您可以使用原始模型进行图像分类。请参阅 model hub ,以查找您感兴趣的任务的微调版本。
使用此模型将COCO 2017数据集中的图像分类为1,000个ImageNet类别之一的示例代码如下:
from transformers import ViTImageProcessor, ViTForImageClassification from PIL import Image import requests url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224') model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224') inputs = processor(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])
对于更多代码示例,请参阅 documentation
ViT模型在 ImageNet-21k 上进行了预训练,该数据集由1400万张图像和21k类别组成,并在 ImageNet 上进行了微调,该数据集由100万张图像和1k类别组成。
训练/验证期间图像的预处理的详细信息可以在 here 中找到。
图像被调整大小/缩放到相同的分辨率(224x224),并在RGB通道上进行归一化,均值为(0.5, 0.5, 0.5),标准差为(0.5, 0.5, 0.5)。
该模型在TPUv3硬件(8个核心)上进行了训练。所有模型变体的批处理大小为4096,学习率预热为10k步。对于ImageNet,作者发现在全局范数1处进行梯度裁剪也是有益的。训练分辨率为224。
关于几个图像分类基准的评估结果,请参见原始论文的表2和表5。请注意,微调时,使用更高的分辨率(384x384)可以获得最佳结果。当然,增加模型大小会带来更好的性能。
@misc{wu2020visual, title={Visual Transformers: Token-based Image Representation and Processing for Computer Vision}, author={Bichen Wu and Chenfeng Xu and Xiaoliang Dai and Alvin Wan and Peizhao Zhang and Zhicheng Yan and Masayoshi Tomizuka and Joseph Gonzalez and Kurt Keutzer and Peter Vajda}, year={2020}, eprint={2006.03677}, archivePrefix={arXiv}, primaryClass={cs.CV} }
@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} }