🚀 DiNAT (mini variant)
DiNAT-Miniは、224x224解像度のImageNet-1Kで学習されたモデルです。このモデルは、Hassaniらによる論文 Dilated Neighborhood Attention Transformer で紹介され、このリポジトリ で最初に公開されました。
🚀 クイックスタート
このセクションでは、DiNAT (mini variant) モデルの基本的な使い方を説明します。
✨ 主な機能
- 画像分類タスクに適用可能な階層型ビジョントランスフォーマーです。
- Neighborhood Attention (NA) とその拡張版である Dilated Neighborhood Attention (DiNA) をベースに構築されています。
- PyTorchを用いた実装が NATTEN パッケージを通じて提供されています。
📦 インストール
このモデルを使用するには、transformers
の他に NATTEN パッケージが必要です。
Linuxの場合
shi-labs.com/natten を参照して、事前にコンパイルされたバイナリを使用してインストールすることができます(正しいホイールURLを取得するには、使用するtorchビルドを選択してください)。
その他の方法
pip install natten
を使用してデバイス上でコンパイルすることもできますが、これには数分かかる場合があります。Macユーザーはこの方法しか利用できません(事前にコンパイルされたバイナリは提供されていません)。
詳細な情報は NATTENのGitHub を参照してください。
💻 使用例
基本的な使用法
以下は、COCO 2017データセットの画像を1,000種類のImageNetクラスのいずれかに分類するためのコード例です。
from transformers import AutoImageProcessor, DinatForImageClassification
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 = AutoImageProcessor.from_pretrained("shi-labs/dinat-mini-in1k-224")
model = DinatForImageClassification.from_pretrained("shi-labs/dinat-mini-in1k-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])
高度な使用法
他のタスクに対して微調整されたモデルを探すには、モデルハブ を参照してください。
📚 ドキュメント
モデルの説明
DiNATは、Neighborhood Attention (NA) とその拡張版である Dilated Neighborhood Attention (DiNA) をベースにした階層型ビジョントランスフォーマーです。Neighborhood Attentionは、各トークンの受容野が最も近い隣接ピクセルに制限された制約付き自己注意パターンです。NAとDiNAはスライディングウィンドウ型の注意パターンであり、非常に柔軟で並進等変性を維持します。
Source
想定される用途と制限
このモデルは画像分類に使用できます。興味のあるタスクに対して微調整されたバージョンを探すには、モデルハブ を参照してください。
🔧 技術詳細
- モデルタイプ:階層型ビジョントランスフォーマー
- 学習データ:ImageNet-1K (224x224解像度)
📄 ライセンス
このモデルはMITライセンスの下で公開されています。
BibTeX引用
@article{hassani2022dilated,
title = {Dilated Neighborhood Attention Transformer},
author = {Ali Hassani and Humphrey Shi},
year = 2022,
url = {https://arxiv.org/abs/2209.15001},
eprint = {2209.15001},
archiveprefix = {arXiv},
primaryclass = {cs.CV}
}