google/vit-base-patch16-384

google
Clasificación de imagen

El modelo Vision Transformer (ViT) es un modelo de codificador transformer (similar a BERT) preentrenado en una gran colección de imágenes de forma supervisada, concretamente ImageNet-21k, con una resolución de 224x224 píxeles. Luego, el modelo se afinó en ImageNet (también conocido como ILSVRC2012), un conjunto de datos que comprende 1 millón de imágenes y 1,000 clases, a una resolución más alta de 384x384. Las imágenes se presentan al modelo como una secuencia de parches de tamaño fijo (resolución 16x16), que se incrustan linealmente. También se añade un token [CLS] al comienzo de una secuencia para usarlo en tareas de clasificación. También se añaden incrustaciones de posición absoluta antes de alimentar la secuencia a las capas del codificador Transformer. Al preentrenar el modelo, aprende una representación interna de las imágenes que luego puede usarse para extraer características útiles para tareas posteriores: si tienes un conjunto de datos de imágenes etiquetadas, por ejemplo, puedes entrenar un clasificador estándar colocando una capa lineal sobre el codificador preentrenado. Normalmente se coloca una capa lineal sobre el token [CLS], ya que el último estado oculto de este token puede verse como una representación de una imagen completa.

Como usar

Aquí se explica cómo usar este modelo para clasificar una imagen del conjunto de datos COCO 2017 en una de las 1,000 clases de ImageNet:

from transformers import ViTFeatureExtractor, ViTForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-384')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-384')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# el modelo predice una de las 1000 clases de ImageNet
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])

Actualmente, tanto el extractor de características como el modelo son compatibles con PyTorch. TensorFlow y JAX/FLAX llegarán pronto, y la API de ViTFeatureExtractor podría cambiar.

Funcionalidades

Clasificación de imágenes
Transformers
PyTorch
TensorFlow
JAX
Safetensors
imagenet
imagenet-21k
Inference Endpoints

Casos de uso

Clasificación de imágenes
Reconocimiento de imágenes a gran escala
Extracción de características de imágenes