efficientnet_el_pruned.in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes EfficientNet-EdgeTPU. Podado mediante Knapsack a partir de pesos existentes.

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('efficientnet_el_pruned.in1k', pretrained=True)
model = model.eval()

# Get model specific transforms (normalization, resize)
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('efficientnet_el_pruned.in1k', pretrained=True, features_only=True)
model = model.eval()

# Get model specific transforms (normalization, resize)
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)

Embebidos 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('efficientnet_el_pruned.in1k', pretrained=True, num_classes=0) # Remove classifier nn.Linear
model = model.eval()

# Get model specific transforms (normalization, resize)
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

# or equivalently (without needing to set num_classes=0)

output = model.forward_features(transforms(img).unsqueeze(0)) # Output is unpooled, a (1, 1536, 10, 10) 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
Embebidos de imágenes
Comparación de modelos

Casos de uso

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