lcnet_050.ra2_in1k
timm
Clasificación de imagen
Un modelo de clasificación de imágenes LCNet. Entrenado en ImageNet-1k en timm utilizando la plantilla de receta descrita a continuación. Detalles de la receta: receta RandAugment RA2. Inspirado y evolucionado a partir de recetas RandAugment EfficientNet. Publicado como receta B en ResNet Strikes Back. Optimizador RMSProp (comportamiento TF 1.0), ponderación EMA promediada. Horario LR de paso (decaimiento exponencial con escalones) con calentamiento.
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('lcnet_050.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)) # añadir dimensión batch
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(
'lcnet_050.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)) # añadir dimensión batch
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(
'lcnet_050.ra2_in1k',
pretrained=True,
num_classes=0, # eliminar clasificador
)
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)) # tensor con forma (batch_size, num_features)
# o equivalentemente (sin necesidad de establecer num_classes=0)
output = model.forward_features(transforms(img).unsqueeze(0))
# tensor desagregado, con forma (1, 256, 7, 7)
output = model.forward_head(output, pre_logits=True)
# tensor con forma (1, num_features)
Funcionalidades
- Red neuronal convolucional ligera para CPU
- Utiliza receta RandAugment RA2
- Optimizador RMSProp con ponderación EMA
- Horario LR de paso con calentamiento
- Tamaño de imagen: 224 x 224
- Params (M): 1.9
- GMACs: 0.0
- Activaciones (M): 1.3
Casos de uso
- Clasificación de imágenes
- Extracción de mapas de características
- Generación de embeddings de imágenes