timm/resnet18.gluon_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ResNet-B. Este modelo utiliza activaciones ReLU, una capa sencilla de convolución 7x7 con pooling, y un atajo de muestreo reducido de convolución 1x1. Entrenado en ImageNet-1k con Apache Gluon utilizando recetas basadas en Bag-of-Tricks.

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'))
modelo = timm.create_model('resnet18.gluon_in1k', pretrained=True)
modelo = modelo.eval()
data_config = timm.data.resolve_model_data_config(modelo)
transforms = timm.data.create_transform(**data_config, is_training=False)
salida = modelo(transforms(img).unsqueeze(0))
probabilidades_top5, indices_clase_top5 = torch.topk(salida.softmax(dim=1) * 100, k=5)

Extracción del 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'))
modelo = timm.create_model('resnet18.gluon_in1k', pretrained=True, features_only=True)
modelo = modelo.eval()
data_config = timm.data.resolve_model_data_config(modelo)
transforms = timm.data.create_transform(**data_config, is_training=False)
salida = modelo(transforms(img).unsqueeze(0))

for o in salida:
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'))
modelo = timm.create_model('resnet18.gluon_in1k', pretrained=True, num_classes=0)
modelo = modelo.eval()
data_config = timm.data.resolve_model_data_config(modelo)
transforms = timm.data.create_transform(**data_config, is_training=False)
salida = modelo(transforms(img).unsqueeze(0))
salida = modelo.forward_features(transforms(img).unsqueeze(0))
salida = modelo.forward_head(salida, pre_logits=True)

Funcionalidades

Activaciones ReLU
Capa sencilla de convolución 7x7 con pooling
Atajo de muestreo reducido de convolución 1x1

Casos de uso

Clasificación de imágenes
Extracción del mapa de características
Generación de embeddings de imágenes