timm/convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384

timm
Clasificación de imagen

Un modelo de clasificación de imágenes ConvNeXt. Pesos de la torre de imágenes CLIP preentrenados en OpenCLIP en LAION y afinado en ImageNet-12k seguido por ImageNet-1k en timm por Ross Wightman. Por favor vea las tarjetas de modelo de OpenCLIP relacionadas para más detalles sobre el preentrenamiento.

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

# obtener transformaciones específicas del modelo (normalización, redimensionamiento)
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)) # agrupar una sola imagen en un lote de 1

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

# obtener transformaciones específicas del modelo (normalización, redimensionamiento)
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)) # agrupar una sola imagen en un lote de 1

for o in output:
# imprimir la forma de cada mapa de características en la 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'))

model = timm.create_model('convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384', pretrained=True, num_classes=0, # remove classifier nn.Linear)
model = model.eval()

# obtener transformaciones específicas del modelo (normalización, redimensionamiento)
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)) # la salida es un tensor en forma de (tamaño_lote, num_features)

# o de manera equivalente (sin necesidad de establecer num_classes=0)

output = model.forward_features(transforms(img).unsqueeze(0))
# la salida no está agrupada, es un tensor en forma de (1, 1024, 12, 12)

output = model.forward_head(output, pre_logits=True)
# la salida es un tensor en forma de (1, num_features)

Funcionalidades

Clasificación de imágenes
Extracción de mapa de características
Embeddings de imágenes

Casos de uso

Clasificación de imágenes
Extracción de mapas de características para análisis de imágenes
Generación de embeddings de imágenes para modelos adicionales