microsoft/swinv2-large-patch4-window12-192-22k
El modelo Swin Transformer v2, de tamaño grande, preentrenado en ImageNet-21k a una resolución de 192x192. Fue presentado en el artículo Swin Transformer V2: Scaling Up Capacity and Resolution por Liu et al. y fue publicado inicialmente en este repositorio. El Swin Transformer es un tipo de Transformer de Visión. Construye mapas de características jerárquicos al fusionar parches de imagen (mostrados en gris) en capas más profundas y tiene una complejidad computacional lineal en relación al tamaño de la imagen de entrada debido al cálculo de la autoatención solo dentro de cada ventana local (mostrada en rojo). Por lo tanto, puede servir como respaldo de propósito general tanto para la clasificación de imágenes como para tareas de reconocimiento denso. En contraste, los transformadores de visión anteriores producen mapas de características de una única resolución baja y tienen una complejidad computacional cuadrática en relación al tamaño de la imagen de entrada debido al cálculo de la autoatención a nivel global. Swin Transformer v2 añade 3 mejoras principales: 1) un método residual-post-norm combinado con atención coseno para mejorar la estabilidad del entrenamiento; 2) un método de sesgo de posición continuo espaciado logarítmicamente para transferir eficientemente modelos preentrenados usando imágenes de baja resolución a tareas posteriores con entradas de alta resolución; 3) un método de preentrenamiento auto-supervisado, SimMIM, para reducir la necesidad de vastas cantidades de imágenes etiquetadas.
Como usar
Aquí se muestra cómo usar este modelo para clasificar una imagen del conjunto de datos COCO 2017 en una de las 21k clases de ImageNet:
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained("microsoft/swinv2-large-patch4-window12-192-22k")
model = AutoModelForImageClassification.from_pretrained("microsoft/swinv2-large-patch4-window12-192-22k")
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# el modelo predice una de las 21k clases de ImageNet
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])
Funcionalidades
- Construcción de mapas de características jerárquicos
- Complejidad computacional lineal en relación al tamaño de la imagen de entrada
- Cálculo de autoatención solo dentro de cada ventana local
- Método residual-post-norm combinado con atención coseno
- Método de sesgo de posición continuo espaciado logarítmicamente
- Método de preentrenamiento auto-supervisado, SimMIM
Casos de uso
- Clasificación de imágenes
- Tareas de reconocimiento denso