mobilenetv3_small_075.lamb_in1k
timm
Clasificación de imagen
Un modelo de clasificación de imágenes MobileNet-v3. Entrenado en ImageNet-1k en timm usando la plantilla de receta descrita a continuación. Detalles de la receta: Una receta de optimizador LAMB similar a ResNet Strikes Back A2 pero un 50% más larga con promediado de pesos EMA, sin CutMix. Optimizador RMSProp (comportamiento de TF 1.0), promediado de pesos EMA. Programación LR con decaimiento exponencial en escalera con calentamiento.
Como usar
from urllib.request import urlopen
from PIL import Image
import timm
# Clasificación de Imágenes
img = Image.open(urlopen('https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'))
model = timm.create_model('mobilenetv3_small_075.lamb_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)) # desdimensionar imagen única en lote de 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
# Extracción de Mapas de Características
img = Image.open(urlopen('https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'))
model = timm.create_model('mobilenetv3_small_075.lamb_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)) # desdimensionar imagen única en lote de 1
for o in output:
print(o.shape)
from urllib.request import urlopen
from PIL import Image
import timm
# Obtener Embeddings de Imágenes
img = Image.open(urlopen('https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'))
model = timm.create_model('mobilenetv3_small_075.lamb_in1k', pretrained=True, num_classes=0) # eliminar clasificador 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 output es un tensor con forma (batch_size, num_features)
# o de forma equivalente (sin necesidad de establecer num_classes=0)
output = model.forward_features(transforms(img).unsqueeze(0)) # el output no está agrupado, es un tensor con forma (1, 432, 7, 7)
output = model.forward_head(output, pre_logits=True) # el output es un tensor con forma (1, num_features)
Funcionalidades
- Tipo de modelo: Clasificación de imágenes / columna vertebral de características
- Parámetros (M): 2.0
- GMACs: 0.0
- Activaciones (M): 1.3
- Tamaño de imagen: 224 x 224
Casos de uso
- Clasificación de imágenes
- Extracción de mapas de características
- Embeddings de imágenes