microsoft/beit-large-patch16-512
El modelo BEiT es un Transformer de Visión (ViT), que es un modelo de codificador transformer (similar a BERT). A diferencia del modelo ViT original, BEiT está preentrenado en una gran colección de imágenes de forma auto-supervisada, específicamente ImageNet-21k, con una resolución de 224x224 píxeles. El objetivo de preentrenamiento del modelo es predecir tokens visuales desde el codificador de VQ-VAE de DALL-E de OpenAI, basándose en parches enmascarados. Luego, el modelo se ajustó de forma supervisada en ImageNet, un conjunto de datos que consta de 1 millón de imágenes y 1,000 clases, también en una resolución de 224x224. Las imágenes se presentan al modelo como una secuencia de parches de tamaño fijo (resolución 16x16), que están incrustados linealmente. Contrario a los modelos ViT originales, los modelos BEiT usan incrustaciones de posición relativa (similar a T5) en lugar de incrustaciones de posición absoluta, y realizan la clasificación de imágenes mediante una media de los estados ocultos finales de los parches, en lugar de colocar una capa lineal encima del estado oculto final del token [CLS].
Como usar
Aquí está 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 BeitFeatureExtractor, BeitForImageClassification
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 = BeitFeatureExtractor.from_pretrained('microsoft/beit-large-patch16-512')
model = BeitForImageClassification.from_pretrained('microsoft/beit-large-patch16-512')
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 admiten PyTorch.
Funcionalidades
- Transformador de Visión grande
- Preentrenamiento auto-supervisado
- 1 millón de imágenes y 1,000 clases en ImageNet
- Uso de incrustaciones de posición relativa
Casos de uso
- Clasificación de imágenes