glrh11/vit-base-patch16-224
glrh11
Clasificación de imagen
El modelo Vision Transformer (ViT) preentrenado en ImageNet-21k (14 millones de imágenes, 21.843 clases) a una resolución de 224x224, y ajustado en ImageNet 2012 (1 millón de imágenes, 1.000 clases) a resolución 224x224. Introducido en el artículo 'An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale' por Dosovitskiy et al. Los pesos del modelo han sido convertidos desde el repositorio timm por Ross Wightman.
Como usar
Aquí se muestra cómo usar este modelo para clasificar una imagen del dataset COCO 2017 en una de las 1.000 clases de ImageNet:
from transformers import ViTImageProcessor, ViTForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')
inputs = processor(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])
Funcionalidades
- Modelo Visual Transformer (ViT)
- Preentrenado en ImageNet-21k
- Resolución de 224x224
- Usa patches de tamaño fijo de 16x16 para las imágenes
- Incluye un token [CLS] para tareas de clasificación
- Embeddings de posición absolutas
- Posibilidad de ser ajustado para tareas específicas
- Implementación en PyTorch
Casos de uso
- Clasificación de imágenes
- Extracción de características de imágenes para tareas posteriores
- Entrenar un clasificador estándar usando el encoder preentrenado