🚀 MobileViT (小型モデル)
MobileViTは、解像度256x256のImageNet - 1kで事前学習されたモデルです。このモデルは、Sachin MehtaとMohammad RastegariによるMobileViT: Light - weight, General - purpose, and Mobile - friendly Vision Transformerで導入され、最初は[this repository](https://github.com/apple/ml - cvnets)で公開されました。使用されているライセンスは[Apple sample code license](https://github.com/apple/ml - cvnets/blob/main/LICENSE)です。
なお、MobileViTを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されています。
✨ 主な機能
MobileViTは、軽量で低遅延の畳み込みニューラルネットワークです。MobileNetV2スタイルのレイヤーと、畳み込みにおける局所処理をトランスフォーマーを用いたグローバル処理に置き換える新しいブロックを組み合わせています。ViT (Vision Transformer) と同様に、画像データはトランスフォーマーレイヤーで処理される前に平坦化されたパッチに変換されます。その後、パッチは特徴マップに戻されます。これにより、MobileViTブロックをCNN内の任意の場所に配置することができます。また、MobileViTは位置埋め込みを必要としません。
🚀 クイックスタート
このモデルは画像分類に使用できます。関心のあるタスクに関するファインチューニング済みのバージョンを探すには、モデルハブを参照してください。
💻 使用例
基本的な使用法
以下は、このモデルを使用してCOCO 2017データセットの画像を1000種類のImageNetクラスのいずれかに分類する方法です。
from transformers import MobileViTFeatureExtractor, MobileViTForImageClassification
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 = MobileViTFeatureExtractor.from_pretrained('Matthijs/mobilevit-small')
model = MobileViTForImageClassification.from_pretrained('Matthijs/mobilevit-small')
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をサポートしています。
📚 ドキュメント
学習データ
MobileViTモデルは、100万枚の画像と1000クラスから構成される[ImageNet - 1k](https://huggingface.co/datasets/imagenet - 1k)データセットで事前学習されました。
学習手順
前処理
学習には、ランダムなリサイズクロッピングと水平反転などの基本的なデータ拡張のみが必要です。
多尺度表現を学習するために、微調整を必要とせずに、学習中に多尺度サンプラーが使用されます。画像サイズは(160, 160)、(192, 192)、(256, 256)、(288, 288)、(320, 320)からランダムにサンプリングされます。
推論時には、画像は同じ解像度(288x288)にリサイズ/リスケールされ、256x256で中央クロップされます。
ピクセルは[0, 1]の範囲に正規化されます。画像はRGBではなくBGRのピクセル順序であることが想定されています。
事前学習
MobileViTネットワークは、8台のNVIDIA GPUでImageNet - 1k上で300エポック学習されます。有効なバッチサイズは1024で、学習率は3kステップのウォームアップの後、コサインアニーリングが適用されます。また、ラベルスムージング交差エントロピー損失とL2重み減衰も使用されます。学習解像度は160x160から320x320まで多尺度サンプリングを使用して変化します。
評価結果
モデル |
ImageNetトップ1精度 |
ImageNetトップ5精度 |
パラメータ数 |
URL |
MobileViT - XXS |
69.0 |
88.9 |
1.3 M |
https://huggingface.co/Matthijs/mobilevit - xx - small |
MobileViT - XS |
74.8 |
92.3 |
2.3 M |
https://huggingface.co/Matthijs/mobilevit - x - small |
MobileViT - S |
78.4 |
94.1 |
5.6 M |
https://huggingface.co/Matthijs/mobilevit - small |
BibTeX引用
@inproceedings{vision-transformer,
title = {MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer},
author = {Sachin Mehta and Mohammad Rastegari},
year = {2022},
URL = {https://arxiv.org/abs/2110.02178}
}
📄 ライセンス
このモデルのライセンスは[Apple sample code license](https://github.com/apple/ml - cvnets/blob/main/LICENSE)です。