timm/maxxvit_rmlp_small_rw_256.sw_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes específico de timm basado en MaxxViT con un MLP Log-CPB (sesgo de posición relativa de coordenadas logarítmicas continuas motivado por Swin-V2). Entrenado en timm sobre ImageNet-1k por Ross Wightman. El entrenamiento en ImageNet-1k se llevó a cabo en TPUs gracias al apoyo del programa TRC. MaxxViT abarca una serie de arquitecturas de modelos relacionados que comparten una estructura común. Entre las variantes importantes se incluyen CoAtNet, MaxViT, CoAtNeXt y MaxxViT-V2, cada una de las cuales combina distintos bloques de convolución y atención en diferentes etapas del modelo. Los modelos con el prefijo 'rw' son configuraciones específicas de timm optimizadas para el uso en PyTorch, mientras que los modelos con 'tf' son equivalentes a los modelos basados en TensorFlow originales, con pesos portados a PyTorch.

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('maxxvit_rmlp_small_rw_256.sw_in1k', pretrained=True)
model = model.eval()
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)) # unsqueeze single image into batch of 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('maxxvit_rmlp_small_rw_256.sw_in1k', pretrained=True, features_only=True)
model = model.eval()
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)) # unsqueeze single image into batch of 1
for o in output:
    print(o.shape)

Incorporaciones 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('maxxvit_rmlp_small_rw_256.sw_in1k', pretrained=True, num_classes=0)
model = model.eval()
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)) # output is (batch_size, num_features) shaped tensor
output = model.forward_features(transforms(img).unsqueeze(0)) # output is unpooled, a (1, 768, 8, 8) shaped tensor
output = model.forward_head(output, pre_logits=True) # output is a (1, num_features) shaped tensor

Funcionalidades

Clasificación de imágenes
Extracción de mapas de características
Incorporaciones de imágenes
Comparación de modelos por Top-1 y rendimiento (muestras/segundo)

Casos de uso

Clasificación de imágenes
Extracción de mapas de características para análisis más detallado de imágenes
Generación de incorporaciones de imágenes para tareas de búsqueda y recuperación
Comparación de rendimiento en términos de precisión Top-1 e inferencia por segundo entre diferentes variantes del modelo