timm/swin_base_patch4_window12_384.ms_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes Swin Transformer. Preentrenado en ImageNet-1k por los autores del artículo. Este modelo es un transformador de visión jerárquico que utiliza ventanas desplazadas para lograr una clasificación eficiente de imágenes.

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('swin_base_patch4_window12_384.ms_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)) # añadir una única 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

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(
'swin_base_patch4_window12_384.ms_in1k',
pretrained=True,
features_only=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)) # añadir una única imagen en un lote de 1

for o in output:
print(o.shape)

Creación de 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(
'swin_base_patch4_window12_384.ms_in1k',
pretrained=True,
num_classes=0, # eliminar la clasificador nn.Linear
)
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)) # la salida es un tensor con forma (batch_size, num_features)

output = model.forward_features(transforms(img).unsqueeze(0))

output = model.forward_head(output, pre_logits=True)

Funcionalidades

Modelo de tipo: clasificación de imágenes / columna vertebral característica
Parámetros (M): 87.9
GMACs: 47.2
Activaciones (M): 134.8
Tamaño de la imagen: 384 x 384

Casos de uso

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