🚀 Vision Transformer (小型モデル、パッチサイズ8)をDINOを用いて学習
DINO手法を用いて学習されたVision Transformer (ViT) モデルです。このモデルは、Mathilde Caron、Hugo Touvron、Ishan Misra、Hervé Jégou、Julien Mairal、Piotr Bojanowski、Armand Joulinによる論文 Emerging Properties in Self-Supervised Vision Transformers で紹介され、このリポジトリ で最初に公開されました。
免責事項: DINOを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
Vision Transformer (ViT) は、自己教師付き学習により大量の画像コレクション、具体的には解像度224x224ピクセルのImageNet-1kで事前学習されたトランスフォーマーエンコーダモデル(BERTのような)です。
画像は固定サイズのパッチ(解像度8x8)のシーケンスとしてモデルに入力され、線形埋め込みされます。また、分類タスクに使用するために、シーケンスの先頭に [CLS] トークンを追加します。トランスフォーマーエンコーダのレイヤーにシーケンスを入力する前に、絶対位置埋め込みも追加されます。
なお、このモデルには微調整されたヘッドは含まれていません。
モデルを事前学習することで、画像の内部表現を学習し、下流タスクに有用な特徴を抽出するために使用できます。たとえば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を学習することができます。通常、[CLS] トークンの最後の隠れ状態は画像全体の表現と見なすことができるため、このトークンの上に線形層を配置します。
✨ 主な機能
- 自己教師付き学習により、大量の画像データで事前学習されています。
- 画像を固定サイズのパッチに分割し、トランスフォーマーエンコーダで処理することで、画像の内部表現を学習します。
- 事前学習されたエンコーダの上に線形層を配置することで、下流タスクに使用できます。
📚 ドキュメント
想定される用途と制限
このモデルは画像分類に使用できます。関心のあるタスクで微調整されたバージョンを探すには、モデルハブ を参照してください。
🔧 技術詳細
- モデルの構造: Vision Transformer (ViT) は、トランスフォーマーエンコーダモデルです。画像は固定サイズのパッチに分割され、線形埋め込みされます。また、分類タスクに使用するために、シーケンスの先頭に [CLS] トークンが追加されます。
- 事前学習データ: このモデルは、解像度224x224ピクセルのImageNet-1kで事前学習されています。
- 特徴抽出: 事前学習により、画像の内部表現を学習し、下流タスクに有用な特徴を抽出することができます。
モデルの情報
属性 |
详情 |
模型类型 |
Vision Transformer (ViT) |
训练数据 |
ImageNet-1k |
引用情報
@article{DBLP:journals/corr/abs-2104-14294,
author = {Mathilde Caron and
Hugo Touvron and
Ishan Misra and
Herv{\'{e}} J{\'{e}}gou and
Julien Mairal and
Piotr Bojanowski and
Armand Joulin},
title = {Emerging Properties in Self-Supervised Vision Transformers},
journal = {CoRR},
volume = {abs/2104.14294},
year = {2021},
url = {https://arxiv.org/abs/2104.14294},
archivePrefix = {arXiv},
eprint = {2104.14294},
timestamp = {Tue, 04 May 2021 15:12:43 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2104-14294.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
💻 使用例
基本的な使用法
from transformers import ViTImageProcessor, ViTModel
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = ViTImageProcessor.from_pretrained('facebook/dino-vits8')
model = ViTModel.from_pretrained('facebook/dino-vits8')
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
📄 ライセンス
このモデルはApache-2.0ライセンスの下で公開されています。