timm/coatnet_0_rw_224.sw_in1k
timm
Clasificación de imagen
Un modelo de clasificación de imágenes específico para CoAtNet, entrenado en timm en ImageNet-1k por Ross Wightman. El entrenamiento en ImageNet-1k se realizó en TPUs gracias al apoyo del programa TRC. CoAtNet combina bloques de convolución MBConv (separables de profundidad) en las primeras etapas con bloques de transformador de autoatención en etapas posteriores. La arquitectura también incluye variantes adicionales como MaxViT y CoAtNeXt.
Como usar
from urllib.request import urlopen
from PIL import Image
import timm
# Clasificación de imágenes
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
model = timm.create_model('coatnet_0_rw_224.sw_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)) # Unsqueeze para imagen única en batch de 1
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
from urllib.request import urlopen
from PIL import Image
import timm
# Extracción de mapa de características
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
model = timm.create_model(
'coatnet_0_rw_224.sw_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)) # Unsqueeze para imagen única en batch de 1
for o in output:
print(o.shape)
from urllib.request import urlopen
from PIL import Image
import timm
# Embeddings de imágenes
img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
model = timm.create_model(
'coatnet_0_rw_224.sw_in1k',
pretrained=True,
num_classes=0, # Eliminar classificador 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 es un tensor no agrupado con forma (1, 768, 7, 7)
output = model.forward_head(output, pre_logits=True)
# La salida es un tensor con forma (1, num_features)
Funcionalidades
- Modelo específico para CoAtNet en timm
- Clasificación de imágenes
- Extracción de mapa de características
- Embeddings de imágenes
- Trained en ImageNet-1k
Casos de uso
- Clasificación de imágenes
- Generación de embeddings de imágenes
- Extracción de mapas de características