🚀 ビジョン用Perceiver IO(固定フーリエ位置埋め込み)
Perceiver IOモデルは、ImageNet(1400万枚の画像、1000クラス)上で224x224の解像度で事前学習されています。このモデルは、Jaegleらによって論文Perceiver IO: A General Architecture for Structured Inputs & Outputsで提案され、最初にthis repositoryで公開されました。
免責事項
Perceiver IOを公開したチームはこのモデルのモデルカードを作成していません。このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
このモデルは画像分類タスクに使用できます。あなたは生のモデルを直接使用して画像分類を行うことも、モデルセンターで特定のタスクに対して微調整された他のバージョンを探すこともできます。
✨ 主な機能
- マルチモーダル適用性:Perceiver IOはTransformerエンコーダーモデルであり、任意のモダリティ(テキスト、画像、音声、ビデオなど)に適用できます。
- 効率的な注意力機構:自注意力機構を比較的少ない数の潜在ベクトル(例えば256または512)に適用し、入力と潜在ベクトルの間でのみ交差注意力を計算することで、自注意力機構の時間とメモリの要件が入力のサイズに依存しなくなります。
- 柔軟なデコード方式:デコーダークエリを使用することで、潜在ベクトルの最終的な隠れ状態を任意のサイズと意味を持つ出力に柔軟にデコードできます。
- 生のピクセル値の直接処理:自注意力機構の特性により、このモデルはViTのように画像をパッチに分割することなく、生のピクセル値で直接学習できます。
- 転移可能な特徴学習:事前学習により、モデルは画像の内部表現を学習し、下流のタスクに有用な特徴を抽出するために使用できます。
📦 インストール
ドキュメントにインストール手順は記載されていません。必要な場合は、関連する依存ライブラリ(例:transformers
)の公式インストールガイドを参照してください。
💻 使用例
基本的な使用法
from transformers import PerceiverImageProcessor, PerceiverForImageClassificationFourier
import requests
from PIL import Image
processor = PerceiverImageProcessor.from_pretrained("deepmind/vision-perceiver-fourier")
model = PerceiverForImageClassificationFourier.from_pretrained("deepmind/vision-perceiver-fourier")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(image, return_tensors="pt").pixel_values
outputs = model(inputs)
logits = outputs.logits
print("Predicted class:", model.config.id2label[logits.argmax(-1).item()])
>>> should print Predicted class: tabby, tabby cat
📚 ドキュメント
モデルの説明
Perceiver IOはTransformerエンコーダーモデルであり、任意のモダリティ(テキスト、画像、音声、ビデオなど)に適用できます。その核心的な考え方は、比較的少ない数の潜在ベクトル(例えば256または512)に自注意力機構を適用し、入力と潜在ベクトルの間でのみ交差注意力を計算することです。これにより、自注意力機構の時間とメモリの要件が入力のサイズに依存しなくなります。
デコードには、いわゆるデコーダークエリが使用され、潜在ベクトルの最終的な隠れ状態を任意のサイズと意味を持つ出力に柔軟にデコードできます。画像分類タスクの場合、出力は(batch_size, num_labels)の形状を持つ対数確率のテンソルです。

Perceiver IOアーキテクチャ。
自注意力機構の時間とメモリの要件が入力のサイズに依存しないため、Perceiver IOの開発者はViTのように画像をパッチに分割することなく、生のピクセル値で直接モデルを学習させることができます。この特定のモデルでは、ピクセル値に固定の2次元フーリエ位置埋め込みが追加されています。
事前学習により、モデルは画像の内部表現を学習し、下流のタスクに有用な特徴を抽出するために使用できます。例えば、ラベル付きの画像データセットがある場合、分類デコーダーを置き換えることで標準的な分類器を学習できます。
想定される用途と制限
あなたは生のモデルを使用して画像分類を行うことができます。特定のタスクに対して微調整された他のバージョンについては、モデルセンターを参照してください。
学習データ
このモデルはImageNetで事前学習されています。ImageNetは1400万枚の画像と1000クラスを含むデータセットです。
学習過程
前処理
画像は中央切り抜きとサイズ調整により224x224の解像度に変換され、RGBチャンネルで正規化されます。事前学習ではデータ拡張技術が使用されており、詳細は論文Perceiver IO: A General Architecture for Structured Inputs & Outputsの付録Hを参照してください。
事前学習
ハイパーパラメータの詳細は上記論文の付録Hに記載されています。
評価結果
このモデルはImageNet-1kでのtop-1精度が79.0で、大規模データセット(JFT-300M、Googleの内部データセット)で事前学習した後はtop-1精度が84.5に達します。
引用情報
@article{DBLP:journals/corr/abs-2107-14795,
author = {Andrew Jaegle and
Sebastian Borgeaud and
Jean{-}Baptiste Alayrac and
Carl Doersch and
Catalin Ionescu and
David Ding and
Skanda Koppula and
Daniel Zoran and
Andrew Brock and
Evan Shelhamer and
Olivier J. H{\'{e}}naff and
Matthew M. Botvinick and
Andrew Zisserman and
Oriol Vinyals and
Jo{\~{a}}o Carreira},
title = {Perceiver {IO:} {A} General Architecture for Structured Inputs {\&}
Outputs},
journal = {CoRR},
volume = {abs/2107.14795},
year = {2021},
url = {https://arxiv.org/abs/2107.14795},
eprinttype = {arXiv},
eprint = {2107.14795},
timestamp = {Tue, 03 Aug 2021 14:53:34 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2107-14795.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
📄 ライセンス
このプロジェクトはApache-2.0ライセンスの下で提供されています。