license: apache-2.0
tags:
- 视觉
- 图像分类
datasets:
- imagenet-1k
混合视觉变换器(基础尺寸模型)
混合视觉变换器(ViT)模型由Alexey Dosovitskiy等人在论文《一张图像值16x16个词:大规模图像识别的变换器》中提出。这是首篇成功在ImageNet上训练Transformer编码器的论文,相比传统卷积架构取得了优异效果。ViT混合版是普通视觉变换器的轻微变体,通过利用卷积主干网络(特别是BiT)的特征作为Transformer的初始"词元"。
免责声明:发布ViT的团队未为此模型编写说明卡,本说明卡由Hugging Face团队撰写。
模型描述
虽然Transformer架构已成为自然语言处理任务的事实标准,但其在计算机视觉中的应用仍有限。在视觉领域,注意力机制要么与卷积网络结合使用,要么用于替换卷积网络的某些组件而保持整体结构。我们证明这种对CNN的依赖并非必要,直接应用于图像块序列的纯变换器能在图像分类任务中表现优异。当在大规模数据上预训练并迁移到多个中型或小型图像识别基准(ImageNet、CIFAR-100、VTAB等)时,视觉变换器(ViT)相比最先进的卷积网络可获得更优结果,同时训练所需计算资源显著减少。
预期用途与限制
您可将原始模型用于图像分类。参阅模型中心寻找您感兴趣任务的微调版本。
使用方法
以下示例展示如何使用本模型将COCO 2017数据集的图像分类为1000个ImageNet类别之一:
from transformers import ViTHybridImageProcessor, ViTHybridForImageClassification
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 = ViTHybridImageProcessor.from_pretrained('google/vit-hybrid-base-bit-384')
model = ViTHybridForImageClassification.from_pretrained('google/vit-hybrid-base-bit-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])
>>> 虎斑猫
更多代码示例请参阅文档。
训练数据
ViT-Hybrid模型在包含1400万图像和21k类别的ImageNet-21k上预训练,并在包含100万图像和1k类别的ImageNet上微调。
训练流程
预处理
训练/验证期间图像预处理的具体细节详见此处。
图像被调整/缩放至相同分辨率(224x224),并通过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{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}
}