timm/resnet50.a1_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ResNet-B. Este modelo cuenta con: activaciones ReLU, una única capa de convolución 7x7 con pool, atajo de reducción con convolución 1x1. Fue entrenado en ImageNet-1k en timm utilizando la plantilla de receta descrita a continuación. Detalles de la receta: receta A1 de ResNet Strikes Back, optimizador LAMB con pérdida BCE, plan de tasas de aprendizaje coseno con calentamiento.

Como usar

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

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

model = timm.create_model('resnet50.a1_in1k', pretrained=True)
model = model.eval()

# Obtener 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)) # Redimensionar la imagen en un lote de 1

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

# Extracción de Mapas de Características
model = timm.create_model('resnet50.a1_in1k', pretrained=True, features_only=True)
model = model.eval()

output = model(transforms(img).unsqueeze(0)) # Redimensionar la imagen en un lote de 1

for o in output:
    print(o.shape)

# Embeddings de Imagen
model = timm.create_model('resnet50.a1_in1k', pretrained=True, num_classes=0) # Eliminar clasificador nn.Linear
model = model.eval()

output = model(transforms(img).unsqueeze(0)) # El output es un tensor de forma (batch_size, num_features)

output = model.forward_features(transforms(img).unsqueeze(0)) # El output es un tensor de forma (1, 2048, 7, 7)

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

Funcionalidades

Activaciones ReLU
Capa única de convolución 7x7 con pool
Atajo de reducción con convolución 1x1
Entrenado en ImageNet-1k utilizando recetas timm
Receta A1 de ResNet Strikes Back
Optimizador LAMB con pérdida BCE
Plan de tasas de aprendizaje coseno con calentamiento

Casos de uso

Clasificación de imágenes
Extracción de mapas de características
Obtención de embeddings de imagen