🚀 用於視覺的Perceiver IO(學習型位置嵌入)
Perceiver IO是一種可應用於任何模態(文本、圖像、音頻、視頻等)的Transformer編碼器模型。本模型在ImageNet(1400萬張圖像,1000個類別)上進行了預訓練,分辨率為224x224。它由Jaegle等人在論文Perceiver IO: A General Architecture for Structured Inputs & Outputs中提出,並首次在此倉庫中發佈。
⚠️ 重要提示
本模型的原團隊未為此模型編寫模型卡片,此卡片由Hugging Face團隊編寫。
🚀 快速開始
你可以使用該原始模型進行圖像分類任務。你也可以前往模型中心查找其他針對特定任務微調後的版本。
✨ 主要特性
- 多模態適用性:可以應用於文本、圖像、音頻、視頻等多種模態。
- 高效的注意力機制:自注意力機制的時間和內存需求不依賴於輸入大小。
- 靈活的解碼方式:通過解碼器查詢,可靈活解碼潛在向量的最終隱藏狀態,以生成任意大小和語義的輸出。
📦 安裝指南
暫未提及具體安裝步驟,可參考transformers
庫的安裝方式。
💻 使用示例
基礎用法
from transformers import PerceiverFeatureExtractor, PerceiverForImageClassificationLearned
import requests
from PIL import Image
feature_extractor = PerceiverFeatureExtractor.from_pretrained("deepmind/vision-perceiver-learned")
model = PerceiverForImageClassificationLearned.from_pretrained("deepmind/vision-perceiver-learned")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
encoding = feature_extractor(image, return_tensors="pt")
inputs = encoding.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那樣在圖像塊上訓練。這個特定的模型僅在像素值上添加了學習型1D位置嵌入,因此它沒有關於圖像2D結構的先驗信息。
通過對模型進行預訓練,它學習到了圖像的內部表示,可用於提取對下游任務有用的特徵。例如,如果你有一個帶標籤的圖像數據集,可以通過替換分類解碼器來訓練一個標準的分類器。
預期用途與侷限性
你可以使用該原始模型進行圖像分類。可前往模型中心查找其他針對特定任務微調後的版本。
訓練數據
該模型在ImageNet上進行了預訓練,這是一個包含1400萬張圖像和1000個類別的數據集。
訓練過程
預處理
圖像經過中心裁剪和調整大小至224x224的分辨率,並在RGB通道上進行歸一化。在預訓練過程中使用了數據增強,具體可參考論文的附錄H。
預訓練
超參數的詳細信息可在論文的附錄H中找到。
評估結果
儘管該模型沒有關於圖像2D結構的先驗信息,但在ImageNet-1k上能夠達到72.7的top-1準確率。
BibTeX引用
@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許可證。
屬性 |
詳情 |
模型類型 |
用於視覺的Perceiver IO(學習型位置嵌入) |
訓練數據 |
ImageNet(1400萬張圖像,1000個類別) |