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