🚀 视觉变换器(基础大小模型) - 混合架构
视觉变换器(ViT)混合架构模型由Alexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gelly、Jakob Uszkoreit、Neil Houlsby在论文《一张图像价值16x16个词:大规模图像识别的变换器》中提出。这是首篇成功在ImageNet上训练变换器编码器的论文,与常见的卷积架构相比,取得了非常好的效果。ViT混合架构是普通视觉变换器的一个轻微变体,它利用了一个卷积骨干网络(具体为BiT),其特征被用作变换器的初始“标记”。
声明:发布ViT的团队并未为此模型撰写模型卡片,此模型卡片由Hugging Face团队撰写。
✨ 主要特性
在自然语言处理任务中,变换器架构已成为事实上的标准,但在计算机视觉领域的应用仍有限。在视觉领域,注意力机制要么与卷积网络结合使用,要么用于替代卷积网络的某些组件,同时保持其整体结构不变。研究表明,对卷积神经网络(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("Predicted class:", model.config.id2label[predicted_class_idx])
>>> tabby, tabby cat
更多代码示例,请参考文档。
📚 详细文档
训练数据
ViT - 混合架构模型在ImageNet - 21k上进行了预训练,该数据集包含1400万张图像和21000个类别,并在ImageNet上进行了微调,此数据集包含100万张图像和1000个类别。
训练过程
预处理
训练/验证期间图像预处理的确切细节可在此处找到。图像被调整大小/重新缩放为相同的分辨率(224x224),并在RGB通道上进行归一化,均值为(0.5, 0.5, 0.5),标准差为(0.5, 0.5, 0.5)。
预训练
该模型在TPUv3硬件(8核)上进行训练。所有模型变体都以4096的批量大小和10000步的学习率预热进行训练。对于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}
}
📄 许可证
本项目采用Apache - 2.0许可证。
属性 |
详情 |
模型类型 |
视觉变换器(混合架构) |
训练数据 |
预训练数据:ImageNet - 21k;微调数据:ImageNet |