timm/maxxvit_rmlp_small_rw_256.sw_in1k
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