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