模型:
google/vit-large-patch32-384
任务:
图像分类许可:
apache-2.0Vision Transformer (ViT) 模型是在 ImageNet-21k 数据集上(包含 14 百万张图片,21,843 个类别)预训练的,分辨率为 224x224,然后在 ImageNet 2012 数据集上(包含 1 百万张图片,1,000 个类别)进行了精调,分辨率为 384x384。该模型最初在 Dosovitskiy 等人的论文中提出并在 this repository 中首次发布。然而,模型的权重是由 Ross Wightman 从 timm repository 转换为 PyTorch 的。此处感谢他的贡献。
免责声明:发布 ViT 模型的团队并未为该模型编写过模型卡片,所以此模型卡片是由 Hugging Face 团队编写的。
Vision Transformer (ViT) 是一个在大量图像上以监督方式进行预训练的 Transformer 编码器模型(类似于 BERT),分辨率为 224x224 像素。接下来,该模型在 ImageNet 上进行了精调(也称为 ILSVRC2012),该数据集包含了 1 百万张图片和 1,000 个类别,分辨率为 384x384。
图像被作为固定大小块(分辨率为 32x32)的序列呈现给模型,然后进行线性嵌入。在序列的开头添加了一个 [CLS] 标记,用于分类任务。在将序列输入到 Transformer 编码器的层之前,还会添加绝对位置嵌入。
通过预训练模型,它可以学习图像的内部表示,并可以用于提取对下游任务有用的特征:例如,如果你有一个带标签的图像数据集,可以在预训练编码器的顶部放置一个线性层来训练一个标准分类器。通常情况下,将线性层放在 [CLS] 标记的顶部,因为该标记的最后隐藏状态可以被看作是整个图像的表示。
可以使用原始模型进行图像分类。查看 model hub 以查找您感兴趣的领域的经过微调的版本。
以下是使用此模型将 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-large-patch32-384') model = ViTForImageClassification.from_pretrained('google/vit-large-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 模型在包含 14 百万张图片和 21k 个类别的 ImageNet-21k 数据集上进行了预训练,并在包含 1 百万张图片和 1k 个类别的 ImageNet 数据集上进行了精调。
关于训练/验证期间图像的预处理的详细信息可以在 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{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} }