swinv2_base_window12_192.ms_in22k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes de Swin Transformer V2. Preentrenado en ImageNet-22k por los autores del artículo. Este modelo está diseñado para clasificación de imágenes, extracción de mapas de características y obtención de incrustaciones de imágenes. Utiliza un tamaño de imagen de 192 x 192 y presenta 109.3 millones de parámetros, 11.9 GMACs y 39.7 millones de activaciones.

Como usar

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

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

model = timm.create_model('swinv2_base_window12_192.ms_in22k', 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 dimensión de lote de 1

# obtener las 5 mejores probabilidades y los 5 mejores índices de clase
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
# Ejemplo de extracción de mapas de características
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

model = timm.create_model(
'swinv2_base_window12_192.ms_in22k',
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 dimensión de lote de 1

for o in output:
    print(o.shape)
# Ejemplo de obtención de incrustaciones de imágenes
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

model = timm.create_model(
'swinv2_base_window12_192.ms_in22k',
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 es un tensor de forma (batch_size, num_features)

# o de manera equivalente (sin necesidad de establecer num_classes=0)

output = model.forward_features(transforms(img).unsqueeze(0))
output = model.forward_head(output, pre_logits=True)
# la salida es un tensor de forma (batch_size, num_features)

Funcionalidades

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

Casos de uso

Clasificación precisa de imágenes
Extracción de características para análisis avanzado
Proyectos de visión por computadora que requieren incrustaciones de imágenes