timm/xception41p.ra3_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes alineado Xception. Entrenado previamente en ImageNet-1k en timm por Ross Wightman usando la receta RandAugment RA3. Relacionado con la receta B en ResNet Strikes Back. Esta variación de Xception utiliza un bloque de activación previa específico de timm.

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('xception41p.ra3_in1k', 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)) # inserta una sola imagen en un 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('xception41p.ra3_in1k', 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)) # inserta una sola imagen en un 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('xception41p.ra3_in1k', pretrained=True, num_classes=0) # elimina el clasificador nn.Linear 
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 con forma (batch_size, num_features) 

# o equivalentemente (sin necesidad de establecer num_classes=0) 

output = model.forward_features(transforms(img).unsqueeze(0)) 
# la salida no está agrupada, es un tensor con forma (1, 2048, 10, 10) 

output = model.forward_head(output, pre_logits=True) 
# la salida es un tensor con forma (1, num_features) 

Funcionalidades

Tipo de modelo: Clasificación de imágenes / columna vertebral de características
Parámetros (M): 26.9
GMACs: 9.2
Activaciones (M): 39.9
Tamaño de imagen: 299 x 299

Casos de uso

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