rexnet_150.nav_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ReXNet. Preentrenado en ImageNet-1k por los autores del artículo. El modelo ReXNet se centra en la clasificación de imágenes y se puede utilizar como columna vertebral de características.

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

# obtener transformaciones específicas del modelo (normalización, redimensionar)
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 una dimensión de batch de 1 a la imagen

top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)

Extracción de Mapa 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('rexnet_150.nav_in1k', pretrained=True, features_only=True)
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, redimensionar)
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 una dimensión de batch de 1 a la imagen

for o in output:
    print(o.shape) # imprimir la forma de cada mapa de características en el output

Embeddings de Imagen

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('rexnet_150.nav_in1k', pretrained=True, num_classes=0) # eliminar el clasificador nn.Linear
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, redimensionar)
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 equivalentemente (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, 1920, 7, 7)

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

Funcionalidades

Clasificación de Imágenes
Extracción de Mapa de Características
Embeddings de Imagen

Casos de uso

Clasificación de imágenes en diversas aplicaciones
Extracción de características de imágenes
Generación de embeddings para tareas de visión por computadora