🚀 ビジョントランスフォーマー (大型モデル)
ビジョントランスフォーマー(ViT)は、画像認識のためのトランスフォーマーエンコーダモデルです。このモデルは、ImageNet-21kで事前学習され、ImageNet 2012でファインチューニングされています。
🚀 クイックスタート
ビジョントランスフォーマー(ViT)は、画像の大規模コレクションを教師あり学習で事前学習したトランスフォーマーエンコーダモデル(BERTのような)です。具体的には、解像度224x224ピクセルのImageNet-21kで事前学習され、その後、100万枚の画像と1,000クラスから構成されるImageNet(ILSVRC2012とも呼ばれる)で、解像度384x384でファインチューニングされました。
✨ 主な機能
- 画像分類タスクに適用可能です。
- 事前学習により画像の内部表現を学習し、下流タスクの特徴抽出に利用できます。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
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
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
注意事項
⚠️ 重要提示
現在、特徴抽出器とモデルはPyTorchをサポートしています。TensorflowとJAX/FLAXは近日サポート予定で、ViTFeatureExtractor
のAPIは変更される可能性があります。
📚 ドキュメント
モデルの説明
ビジョントランスフォーマー(ViT)は、画像を固定サイズのパッチ(解像度32x32)のシーケンスとしてモデルに入力し、線形埋め込みを行います。また、分類タスクに使用するために、シーケンスの先頭に[CLS]トークンを追加します。そして、シーケンスをトランスフォーマーエンコーダのレイヤーに入力する前に、絶対位置埋め込みを追加します。
想定される用途と制限
このモデルは、画像分類に使用できます。興味のあるタスクでファインチューニングされたバージョンを探すには、モデルハブを参照してください。
🔧 技術詳細
学習データ
ViTモデルは、1400万枚の画像と21kのクラスから構成されるImageNet-21kで事前学習され、100万枚の画像と1kのクラスから構成されるImageNetでファインチューニングされました。
学習手順
前処理
学習/検証中の画像の前処理の詳細は、こちらに記載されています。画像は、同じ解像度(事前学習時は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}
}
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。