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