🚀 データ効率の高い画像トランスフォーマー(ベースサイズモデル)
Data-efficient Image Transformer (DeiT) モデルは、ImageNet - 1k(100万枚の画像、1000クラス)で224x224の解像度で事前学習と微調整が行われています。このモデルは、Touvronらによって論文 Training data-efficient image transformers & distillation through attention で初めて提案され、このリポジトリ で最初に公開されました。ただし、その重みはRoss Wightmanの timm リポジトリ から変換されたものです。
⚠️ 重要提示
DeiTを公開したチームはこのモデルのモデルカードを作成していません。このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
このオリジナルモデルを使用して画像分類を行うことができます。モデルセンター で、あなたが興味を持っているタスクに対して微調整されたバージョンを見つけることができます。
このモデルは訓練効率の高いViTモデルであるため、ViTModelまたはViTForImageClassificationに挿入することができます。ただし、このモデルはDeiTFeatureExtractorを使用してデータを処理することを想定しています。ここではAutoFeatureExtractorを使用しており、これはモデル名に基づいて適切な特徴抽出器を自動的に使用します。
以下は、このモデルを使用してCOCO 2017データセットの画像を1000のImageNetクラスのいずれかに分類する例です。
from transformers import AutoFeatureExtractor, 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 = AutoFeatureExtractor.from_pretrained('facebook/deit-base-patch16-224')
model = ViTForImageClassification.from_pretrained('facebook/deit-base-patch16-224')
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])
現在、特徴抽出器とモデルはどちらもPyTorchをサポートしています。TensorflowとJAX/FLAXバージョンは近日公開予定です。
✨ 主な機能
- このモデルは実際には訓練効率の高いビジュアルトランスフォーマー(ViT)です。
- 画像の内部表現を学習し、下流のタスクに有用な特徴を抽出するために使用できます。
📚 ドキュメント
モデルの説明
ビジュアルトランスフォーマー(ViT)は、Transformerエンコーダに基づくモデル(BERT に類似)であり、大量の画像セット(ImageNet - 1k)で224x224ピクセルの解像度で教師あり学習による事前学習と微調整が行われています。
画像は固定サイズのパッチシーケンス(解像度16x16)としてモデルに入力され、線形埋め込みが行われます。同時に、分類タスクのためにシーケンスの先頭に [CLS] トークンが追加されます。シーケンスをTransformerエンコーダの各レイヤーに入力する前に、絶対位置埋め込みも追加されます。
モデルを事前学習することで、画像の内部表現を学習し、下流のタスクに有用な特徴を抽出するために使用することができます。たとえば、ラベル付きの画像データセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を訓練することができます。通常、[CLS] トークンの上に線形層が配置されます。これは、このトークンの最後の隠れ状態が画像全体の表現と見なすことができるためです。
想定される用途と制限
このオリジナルモデルを使用して画像分類を行うことができます。モデルセンター で、あなたが興味を持っているタスクに対して微調整されたバージョンを見つけることができます。
訓練データ
ViTモデルは ImageNet - 1k データセットで事前学習されており、このデータセットには100万枚の画像と1000のクラスが含まれています。
訓練過程
前処理
訓練/検証中の画像前処理の正確な詳細は ここ で確認できます。
推論時には、画像は同じ解像度(256x256)にリサイズ/スケーリングされ、その後224x224に中央切り抜きされ、RGBチャンネルでImageNetの平均と標準偏差を使用して正規化されます。
事前学習
このモデルは、単一の8 - GPUノードで3日間訓練されました。訓練解像度は224です。すべてのハイパーパラメータ(バッチサイズや学習率など)については、元の論文の表9を参照してください。
評価結果
モデル |
ImageNet トップ1精度 |
ImageNet トップ5精度 |
パラメータ数 |
URL |
DeiT - tiny |
72.2 |
91.1 |
5M |
https://huggingface.co/facebook/deit - tiny - patch16 - 224 |
DeiT - small |
79.9 |
95.0 |
22M |
https://huggingface.co/facebook/deit - small - patch16 - 224 |
DeiT - base |
81.8 |
95.6 |
86M |
https://huggingface.co/facebook/deit - base - patch16 - 224 |
DeiT - tiny distilled |
74.5 |
91.9 |
6M |
https://huggingface.co/facebook/deit - tiny - distilled - patch16 - 224 |
DeiT - small distilled |
81.2 |
95.4 |
22M |
https://huggingface.co/facebook/deit - small - distilled - patch16 - 224 |
DeiT - base distilled |
83.4 |
96.5 |
87M |
https://huggingface.co/facebook/deit - base - distilled - patch16 - 224 |
DeiT - base 384 |
82.9 |
96.2 |
87M |
https://huggingface.co/facebook/deit - base - patch16 - 384 |
DeiT - base distilled 384 (1000 epochs) |
85.2 |
97.2 |
88M |
https://huggingface.co/facebook/deit - base - distilled - patch16 - 384 |
微調整には、より高い解像度(384x384)を使用すると最良の結果が得られます。もちろん、モデルサイズを大きくすることでも性能が向上します。
BibTeX引用と引用情報
@misc{touvron2021training,
title={Training data-efficient image transformers & distillation through attention},
author={Hugo Touvron and Matthieu Cord and Matthijs Douze and Francisco Massa and Alexandre Sablayrolles and Hervé Jégou},
year={2021},
eprint={2012.12877},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@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ライセンスの下で提供されています。