convnextv2_base.fcmae_ft_in22k_in1k_384

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ConvNeXt-V2. Entrenado previamente con un marco de autoencoder enmascarado completamente convolucional (FCMAE) y ajustado en ImageNet-22k y luego en ImageNet-1k.

Como usar

Clasificación de Imágenes

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('convnextv2_base.fcmae_ft_in22k_in1k_384', pretrained=True)
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, cambio de tamaño)
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)) # agregar una dimensión batch al tensor de imagen

top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)

Extracción de Mapas de Características

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('convnextv2_base.fcmae_ft_in22k_in1k_384', pretrained=True, features_only=True)
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, cambio de tamaño)
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)) # agregar una dimensión batch al tensor de imagen

for o in output:
    print(o.shape) # imprimir la forma de cada mapa de características en la salida

Embeddings de Imágenes

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('convnextv2_base.fcmae_ft_in22k_in1k_384', pretrained=True, num_classes=0)
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, cambio de tamaño)
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 será un tensor de forma (batch_size, num_features)

# o equivalentemente (sin necesidad de configurar num_classes=0)

output = model.forward_features(transforms(img).unsqueeze(0))
# la salida es un tensor no agrupado, de forma (1, 1024, 12, 12)

output = model.forward_head(output, pre_logits=True)
# la salida es un tensor de forma (1, num_features)

Funcionalidades

Clasificación de imágenes
Extracción de mapas de características
Embeddings de imágenes

Casos de uso

Clasificación de imágenes en grandes bases de datos.
Extracción de mapas de características para aplicaciones de visión por computadora.
Generación de embeddings de imágenes para tareas de aprendizaje profundo.