timm/tf_efficientnet_b8.ap_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes EfficientNet. Entrenado en ImageNet-1k con AdvProp (ejemplos adversariales) en TensorFlow por los autores del artículo, portado a PyTorch por Ross Wightman. **Detalles del Modelo:** - Tipo de modelo: Clasificación de imágenes / columna vertebral de características - Parámetros (M): 87.4 - GMACs: 63.5 - Activaciones (M): 442.9 - Tamaño de la imagen: 672 x 672 **Papers Relacionados:** - EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks: https://arxiv.org/abs/1905.11946 - Adversarial Examples Improve Image Recognition: https://arxiv.org/abs/1911.09665 **Dataset Utilizado:** ImageNet-1k

Como usar

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('tf_efficientnet_b8.ap_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)) # descomprimir imagen única 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('tf_efficientnet_b8.ap_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)) # descomprimir imagen única 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('tf_efficientnet_b8.ap_in1k', pretrained=True, num_classes=0)
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, 2816, 21, 21)

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

Funcionalidades

Clasificación de imágenes
Extracción de mapa de características
Embeddings de imágenes
Comparación de modelos

Casos de uso

Clasificación de imágenes
Extracción de mapas de características para diagnóstico
Generación de embeddings de imágenes para comparación o clustering