convnext_small.fb_in22k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ConvNeXt. Preentrenado en ImageNet-22k por los autores del artículo.

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

# obtener las 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)) # transformar imagen única en lote de 1

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('convnext_small.fb_in22k', pretrained=True, features_only=True)
model = model.eval()

# obtener las 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)) # transformar imagen única en lote de 1

for o in output:
# print shape of each feature map in output
# e.g.:
#  torch.Size([1, 96, 56, 56])
#  torch.Size([1, 192, 28, 28])
#  torch.Size([1, 384, 14, 14])
#  torch.Size([1, 768, 7, 7])

print(o.shape)

Incorporaciones 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('convnext_small.fb_in22k', pretrained=True, num_classes=0)
model = model.eval()

# obtener las 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)) # output is (batch_size, num_features) shaped tensor

# or equivalently (without needing to set num_classes=0)

output = model.forward_features(transforms(img).unsqueeze(0))
# output is unpooled, a (1, 768, 7, 7) shaped tensor

output = model.forward_head(output, pre_logits=True)
# output is a (1, num_features) shaped tensor

Funcionalidades

Clasificación de imágenes
Extracción de mapas de características
Incorporaciones de imágenes
Comparación de modelos

Casos de uso

Clasificación de imágenes
Extracción de características para otras tareas de visión
Generación de incorporaciones de imágenes para otras aplicaciones de IA