timm/swin_large_patch4_window12_384.ms_in22k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes Swin Transformer. Preentrenado en ImageNet-22k por los autores del artículo. El modelo de Transformador Swin utiliza ventanas desplazadas para la visión jerárquica.

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

# obten transformaciones específicas del modelo (normalización, redimensionado)
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 imagen individual en lote de 1

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

Extracción de Mapa 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_large_patch4_window12_384.ms_in22k', pretrained=True, features_only=True)
model = model.eval()

# obten transformaciones específicas del modelo (normalización, redimensionado)
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 imagen individual en lote de 1

for o in output:
    print(o.shape)

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

# obten transformaciones específicas del modelo (normalización, redimensionado)
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 clasificación de imágenes / columna vertebral de características (feature backbone)
Número de parámetros: 228.8M
GMACs: 104.1
Activaciones: 202.2M
Tamaño de imagen: 384 x 384

Casos de uso

Clasificación de Imágenes
Extracción de Mapas de Características
Embeddings de Imágenes