FocalNet (modelo de tamaño pequeño)
FocalNet es un modelo entrenado en ImageNet-1k con una resolución de 224x224. Fue introducido en el artículo 'Focal Modulation Networks' por Yang et al. y fue liberado por primera vez en este repositorio. Focal Modulation Networks son una alternativa a los Transformadores de Visión, donde la auto-atención (SA) es completamente reemplazada por un mecanismo de modulación focal para modelar interacciones de tokens en visión. La modulación focal comprende tres componentes: (i) contextualización jerárquica, implementada usando una pila de capas convolucionales de profundidad separada, para codificar contextos visuales de rangos cortos a largos, (ii) agregación controlada para reunir de manera selectiva contextos para cada token de consulta basado en su contenido, y (iii) modulación o transformación afín elemento por elemento para inyectar el contexto agregado en la consulta. Experimentos extensivos muestran que FocalNets supera a sus contrapartes SA de última generación (por ejemplo, Vision Transformers, Swin y Focal Transformers) con costos computacionales similares en tareas de clasificación de imágenes, detección de objetos y segmentación.
Como usar
Aquí se explica cómo usar este modelo para clasificar una imagen del conjunto de datos COCO 2017 en una de las 1,000 clases de ImageNet:
from transformers import FocalNetImageProcessor, FocalNetForImageClassification
import torch
from datasets import load_dataset
dataset = load_dataset("huggingface/cats-image")
image = dataset["test"]["image"][0]
preprocessor = FocalNetImageProcessor.from_pretrained("microsoft/focalnet-tiny")
model = FocalNetForImageClassification.from_pretrained("microsoft/focalnet-tiny")
inputs = preprocessor(image, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
# el modelo predice una de las 1000 clases de ImageNet
predicted_label = logits.argmax(-1).item()
print(model.config.id2label[predicted_label])
Para más ejemplos de código, consulte la documentación.
Funcionalidades
- Contextualización jerárquica con capas convolucionales de profundidad separada
- Agregación controlada para reunir contextos según el contenido del token de consulta
- Modulación o transformación afín para inyectar el contexto en la consulta
- Outperforms state-of-the-art comparables with similar computational costs
Casos de uso
- Clasificación de imágenes
- Detección de objetos
- Segmentación