eva02_small_patch14_336.mim_in22k_ft_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes EVA02. Preentrenado en ImageNet-22k con modelado de imágenes enmascaradas (utilizando EVA-CLIP como maestro de MIM) y ajustado en ImageNet-1k por los autores del artículo. Los modelos EVA-02 son transformadores de visión con promediado de medias, SwiGLU, Embeddings de Posición Rotatoria (ROPE) y LN adicional en MLP (para Base y Large). NOTA: los puntos de control timm son float32 para consistencia con otros modelos.

Como usar

from urllib.request import urlopen
from PIL import Image
import timm

img = Image.open(urlopen('https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'))

model = timm.create_model('eva02_small_patch14_336.mim_in22k_ft_in1k', pretrained=True)
model = model.eval()

# obtener las transformaciones específicas del modelo (normalización, redimensionamiento)
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)

output = model(transforms(img).unsqueeze(0)) # extraer una sola imagen en un lote de 1
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
from urllib.request import urlopen
from PIL import Image
import timm

img = Image.open(urlopen('https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'))

model = timm.create_model('eva02_small_patch14_336.mim_in22k_ft_in1k', pretrained=True, num_classes=0) # eliminar el clasificador nn.Linear
model = model.eval()

# obtener las transformaciones específicas del modelo (normalización, redimensionamiento)
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)

output = model(transforms(img).unsqueeze(0)) # la salida es un tensor en forma de (batch_size, num_features)
output = model.forward_features(transforms(img).unsqueeze(0)) # la salida no está agrupada, es un tensor en forma de (1, 577, 384)
output = model.forward_head(output, pre_logits=True) # la salida es un tensor en forma de (1, num_features)

Funcionalidades

Clasificación de imágenes
Preentrenado en ImageNet-22k con modelado de imágenes enmascaradas
Ajustado en ImageNet-1k
Transformadores de visión con promediado de medias
SwiGLU
Embeddings de Posición Rotatoria (ROPE)
LN adicional en MLP
Consistencia con puntos de control float32

Casos de uso

Clasificación de imágenes
Obtener incrustaciones de imágenes