🚀 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データセットの画像を1,000の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("apple/mobilevit-x-small")
model = MobileViTForImageClassification.from_pretrained("apple/mobilevit-x-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万枚の画像と1,000のクラスから構成される[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/apple/mobilevit - xx - small |
MobileViT - XS |
74.8 |
92.3 |
2.3 M |
https://huggingface.co/apple/mobilevit - x - small |
MobileViT - S |
78.4 |
94.1 |
5.6 M |
https://huggingface.co/apple/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)の下で提供されています。