microsoft/swinv2-large-patch4-window12to16-192to256-22kto1k-ft
El modelo Swin Transformer v2 ha sido preentrenado en ImageNet-21k y ajustado finamente en ImageNet-1k a una resolución de 256x256. Fue introducido en el artículo 'Swin Transformer V2: Scaling Up Capacity and Resolution' por Liu et al. y fue lanzado por primera vez en este repositorio. Swin Transformer es un tipo de Transformer de Visión que construye mapas de características jerárquicas fusionando parches de imágenes en capas más profundas y tiene una complejidad de cálculo lineal con respecto al tamaño de la imagen de entrada debido al cálculo de la autoatención solo dentro de cada ventana local. Así puede servir como una columna vertebral de propósito general tanto para la clasificación de imágenes como para tareas de reconocimiento denso. A diferencia de transformadores de visión anteriores, que producen mapas de características de una sola baja resolución y tienen una complejidad de cálculo cuadrática con respecto al tamaño de la imagen de entrada debido al cálculo de la autoatención de manera global, Swin Transformer v2 añade 3 mejoras principales: 1) un método de post-norma residual combinado con atención coseno para mejorar la estabilidad del entrenamiento; 2) un método de sesgo de posición continuo log-espaciado para transferir de manera efectiva modelos pre-entrenados 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 grandes 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 1,000 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-window12to16-192to256-22kto1k-ft")
model = AutoModelForImageClassification.from_pretrained("microsoft/swinv2-large-patch4-window12to16-192to256-22kto1k-ft")
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# El modelo predice una de las 1000 clases de ImageNet
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])
Funcionalidades
- Residuos post-norma combinados con atención coseno para mejorar la estabilidad del entrenamiento
- Sesgo de posición continuo log-espaciado para mejor transferencia de imágenes de baja a alta resolución
- Método de preentrenamiento auto-supervisado SimMIM para reducir la necesidad de imágenes etiquetadas en grandes cantidades
Casos de uso
- Clasificación de imágenes
- Reconocimiento denso
- Transferencia efectiva de modelos pre-entrenados de baja a alta resolución