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