timm/resnetv2_50x1_bit.goog_distilled_in1k
timm
Clasificación de imagen
Un modelo de clasificación de imágenes ResNet-V2-BiT (Big Transfer con pre-activación ResNet). Destilado del modelo preentrenado de ImageNet-21k por los autores del artículo. Este modelo utiliza Normalización de Grupo (GN) en combinación con Estandarización de Peso (WS) en lugar de Normalización de Lote (BN).
Como usar
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('resnetv2_50x1_bit.goog_distilled_in1k', 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)) # redimensionar una imagen a un lote de 1
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
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('resnetv2_50x1_bit.goog_distilled_in1k', 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)) # redimensionar una imagen a un lote de 1
for o in output:
# imprimir forma de cada mapa de características en la salida
print(o.shape)
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('resnetv2_50x1_bit.goog_distilled_in1k', pretrained=True, num_classes=0) # eliminar clasificador 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 de forma (batch_size, num_features)
# o equivalentemente (sin necesidad de establecer num_classes=0)
output = model.forward_features(transforms(img).unsqueeze(0))
# la salida no está agrupada, es un tensor de forma (1, 2048, 7, 7)
output = model.forward_head(output, pre_logits=True)
# la salida es un tensor de forma (1, num_features)
Funcionalidades
- Clasificación de Imágenes
- Extracción del Mapa de Características
- Embeddings de Imágenes
Casos de uso
- Clasificación de imágenes
- Extracción y análisis de características de imágenes
- Generación de embeddings para imágenes