facebook/dinov2-small-imagenet1k-1-layer
Vision Transformer (ViT) es un modelo de transformador de codificador (similar a BERT) preentrenado en una gran colección de imágenes de manera auto-supervisada. Las imágenes se presentan al modelo como una secuencia de parches de tamaño fijo, que se incrustan linealmente. También se añade un token [CLS] al comienzo de una secuencia para usarlo en tareas de clasificación. Además, se agregan incrustaciones de posición absoluta antes de alimentar la secuencia a las capas del codificador de Transformador. Este modelo no incluye ninguna cabeza afinada. Al preentrenar el modelo, aprende una representación interna de imágenes que luego se puede usar para extraer características útiles para tareas posteriores. Por ejemplo, si tienes un conjunto de datos de imágenes etiquetadas, puedes entrenar un clasificador estándar colocando una capa lineal sobre el codificador preentrenado.
Como usar
Aquí se muestra cómo usar este modelo:
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained('facebook/dinov2-small-imagenet1k-1-layer')
model = AutoModelForImageClassification.from_pretrained('facebook/dinov2-small-imagenet1k-1-layer')
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])
Funcionalidades
- Modelo de Vision Transformer (ViT)
- Preentrenado usando el método DINOv2
- No incluye cabezas afinadas
- Aprende representaciones internas de imágenes
- Uso de parches de tamaño fijo incrustados linealmente
- Añade un token [CLS] para tareas de clasificación
- Puede ser utilizado para tareas de clasificación de imágenes
Casos de uso
- Clasificación de imágenes entre una de las 1000 etiquetas de ImageNet
- Entrenamiento de un clasificador estándar colocando una capa lineal sobre el codificador preentrenado
- Extracción de características útiles para tareas posteriores