timm/efficientnetv2_rw_s.ra2_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes EfficientNet-v2. Esta es una variación específica de la arquitectura de timm. Entrenado en ImageNet-1k en timm utilizando la plantilla de recetas descrita a continuación. Revista de detalles: Receta RandAugment RA2. Inspirado y evolucionado a partir de las recetas EfficientNet RandAugment. Publicado como receta B en ResNet Strikes Back. Optimizador RMSProp (comportamiento de TF 1.0), promedio de pesos EMA Horario de LR de paso (decadencia exponencial con escalones) con calentamiento

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('efficientnetv2_rw_s.ra2_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)) # insert one image into batch of 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

img = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

model = timm.create_model(
'efficientnetv2_rw_s.ra2_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)) # insert one image into batch of 1

for o in output:
    print(o.shape)
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(
'efficientnetv2_rw_s.ra2_in1k',
pretrained=True,
num_classes=0, # remove classifier 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)) # el resultado es un tensor de forma (batch_size, num_features)

output = model.forward_features(transforms(img).unsqueeze(0)) # el resultado es no agrupado, un tensor de forma (1, 1792, 9, 9)

output = model.forward_head(output, pre_logits=True) # el resultado es un tensor de forma (1, num_features)

Funcionalidades

Modelo de clasificación de imágenes / columna vertebral de características
Parámetros (M): 23.9
GMACs: 4.9
Activaciones (M): 21.4
Tamaño de la imagen: entrenamiento = 288 x 288, prueba = 384 x 384

Casos de uso

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