模型:

deepmind/vision-perceiver-fourier

英文

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是一个可以应用于任何模态(文本、图像、音频、视频等)的转换器编码器模型。其核心思想是在一组不太大的潜在向量(例如256或512)上使用自注意机制,并只使用输入与潜在向量执行交叉注意力。这样可以使自注意机制的时间和内存要求不依赖于输入的大小。

为了解码,作者使用了所谓的解码器查询,它允许灵活地解码潜在向量的最终隐藏状态,从而生成具有任意大小和语义的输出。对于图像分类,输出是一个包含logits的张量,形状为(batch_size,num_labels)。

Perceiver IO架构。

由于自注意机制的时间和内存要求不依赖于输入的大小,因此Perceiver IO的作者可以直接在原始像素值上训练模型,而不像ViT那样在补丁上训练。这个特定的模型只是在像素值上添加了固定的傅里叶2D位置嵌入。

通过预训练模型,它学习了图像的内部表示,然后可以用于提取对下游任务有用的特征:例如,如果你有一个带有标签的图像数据集,你可以通过替换分类解码器来训练一个标准分类器。

预期用途和局限性

您可以使用原始模型进行图像分类。查看 model hub 以查找可能对您感兴趣的任务的其他微调版本。

使用方法

以下是如何在PyTorch中使用此模型:

from transformers import PerceiverFeatureExtractor, PerceiverForImageClassificationFourier
import requests
from PIL import Image

feature_extractor = PerceiverFeatureExtractor.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)

# prepare input
inputs = feature_extractor(image, return_tensors="pt").pixel_values
# forward pass
outputs = model(inputs)
logits = outputs.logits
print("Predicted class:", model.config.id2label[logits.argmax(-1).item()])
>>> should print Predicted class: tabby, tabby cat

训练数据

该模型在 ImageNet 上进行了预训练,该数据集包含1400万个图像和1k个类别。

训练过程

预处理

图像被中心裁剪并调整为224x224的分辨率,并在RGB通道上进行归一化。请注意,预训练过程中使用了数据增强,详见 paper 附录H。

预训练

超参数详细信息可以在 paper 附录H中找到。

评估结果

该模型在ImageNet-1k上能够达到79.0的top-1准确率,并且在大规模数据集(JFT-300M,Google的内部数据集)上进行预训练时可以达到84.5的准确率。

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}
}