darknet53.c2ns_in1k

timm
Clasificación de imagen

Un modelo de clasificación de imágenes DarkNet. Entrenado en ImageNet-1k en timm utilizando la plantilla de receta descrita a continuación. Detalles de la receta: basándose en ResNet Strikes Back C recetas sin repetición de aumento y mixup más fuerte. Optimizador SGD (con Nesterov) y AGC (recorte de gradiente adaptativo). No se utilizó depth estocástico en esta variación de la receta. Programación de LR cosenoidal con calentamiento.

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

# obtain specific model transformations (normalization, resize)
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)) # unsqueeze single image into batch of 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('darknet53.c2ns_in1k', pretrained=True, features_only=True)
model = model.eval()

# obtain specific model transformations (normalization, resize)
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)) # unsqueeze single image into batch of 1

for o in output:
    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('darknet53.c2ns_in1k', pretrained=True, num_classes=0)
model = model.eval()

# obtain specific model transformations (normalization, resize)
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, 1024, 8, 8) shaped tensor

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

Funcionalidades

22.5 millones de imágenes
Entrenado en ImageNet-1k
Optimizador SGD con Nesterov
Recorte de gradiente adaptativo (AGC)
Programación de aprendizaje cosenoide con calentamiento

Casos de uso

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