Perceptor IO para visión (embeddings de posición aprendidos)

deepmind
Clasificación de imagen

El modelo Perceptor IO está preentrenado en ImageNet (14 millones de imágenes, 1,000 clases) a una resolución de 224x224. Fue presentado en el artículo Perceiver IO: Una arquitectura general para entradas y salidas estructuradas por Jaegle et al. y fue liberado por primera vez en este repositorio. Perceptor IO es un modelo de codificador transformer que se puede aplicar a cualquier modalidad (texto, imágenes, audio, video, ...). La idea principal es emplear el mecanismo de auto-atención en un conjunto no muy grande de vectores latentes (por ejemplo, 256 o 512), y solo usar las entradas para realizar atención cruzada con los latentes. Esto permite que los requisitos de tiempo y memoria del mecanismo de auto-atención no dependan del tamaño de las entradas. Para decodificar, los autores emplean consultas de descodificador, que permiten decodificar de manera flexible los estados ocultos finales de los latentes para producir salidas de tamaño y semántica arbitrarios. Para la clasificación de imágenes, la salida es un tensor que contiene los logits, de forma (batch_size, num_labels).

Como usar

Aquí está cómo usar este modelo en PyTorch:

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)

# preparar la entrada
encoding = feature_extractor(image, return_tensors="pt")
inputs = encoding.pixel_values
# paso hacia adelante
outputs = model(inputs)
logits = outputs.logits
print("Clase predicha:", model.config.id2label[logits.argmax(-1).item()])

Debería imprimir Clase predicha: tabby, tabby cat

Funcionalidades

Preentrenado en ImageNet con 14 millones de imágenes y 1,000 clases
Utiliza embeddings de posición 1D aprendidos
Requisitos de tiempo y memoria del mecanismo de auto-atención no dependen del tamaño de las entradas
Puede ser entrenado directamente en valores de píxeles sin información privilegiada sobre la estructura 2D de las imágenes

Casos de uso

Clasificación de imágenes