Swin Transformer
Swin Transformer V1: un vision transformer jerárquico que calcula la atención dentro de ventanas locales desplazadas en lugar de sobre la imagen entera. LibreYOLO incluye cuatro tamaños para clasificación de imágenes.
- Tareas
- classify
- Tamaños
- t, s, b, l at 224 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Licencias
- Código Apache-2.0, pesos MIT. Uso comercial
Instalación
Swin no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwint-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)libreyolo predict model=LibreSwint-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueUn clasificador devuelve result.probs en lugar de result.boxes: top1 y
top5 dan los índices de clase, y top1conf y top5conf dan sus confianzas.
Todos los tamaños están fijados a una entrada de 224px, porque la etapa final
de atención está construida para esa resolución; la predicción, la validación y
la exportación lanzan un error si pasas un imgsz distinto. Consulta
predicción para fuentes, streaming y manejo de resultados.
Variantes
Cuatro tamaños, de tiny a large, construidos sobre la misma torre de ventanas desplazadas y que se diferencian en el ancho del embedding y en la profundidad de cada etapa. El large está preentrenado en ImageNet-22k y ajustado con fine-tuning en ImageNet-1k; los otros tres se entrenan directamente en ImageNet-1k. LibreYOLO incluye esta familia solo para inferencia: la predicción, la validación top-1/top-5 al estilo ImageNet y la exportación están soportadas, y la receta de entrenamiento en ImageNet del proyecto original no está implementada.
Validación
val() se ejecuta sobre un split al estilo ImageFolder (un directorio con
subcarpetas train/ y val/, una carpeta por clase) y devuelve la precisión
top-1 y top-5.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt") # data es un directorio raíz con splits train/ y val/ en carpetas por# clase (estructura ImageFolder), no un YAML de dataset.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])libreyolo val model=LibreSwint-cls.pt data=imagenet-1k/Exportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX: compatible | classify to TorchScript: compatible | classify to ExecuTorch: compatible | classify to TensorRT: compatible | classify to OpenVINO: compatible | classify to Paddle: no compatible | classify to MNN: no compatible | classify to RKNN: no compatible | classify to ncnn: compatible | classify to TFLite: no compatible | classify to CoreML: no compatible | classify to Core AI: no compatible |
Un artefacto exportado se vuelve a cargar con LibreYOLO() según su extensión
de archivo, así que un archivo .onnx o .engine se comporta como un
checkpoint y devuelve el mismo Results. Exportación enumera
los argumentos que acepta cada formato y los extras que añaden algunos de
ellos.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreSwint-cls.pt format=onnxlibreyolo export model=LibreSwint-cls.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La factoría enruta según la extensión del archivo, así que un artefacto# exportado se carga como cualquier checkpoint y devuelve el mismo objeto# Results.model = LibreYOLO("LibreSwint-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| classify | ||
| LibreSwint-cls.pt | 224 | mit |
| LibreSwins-cls.pt | 224 | mit |
| LibreSwinb-cls.pt | 224 | mit |
| LibreSwinl-cls.pt | 224 | mit |
Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.
Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- Swin Transformer, Microsoft Research
- Licencia del proyecto original
- MIT
- Fuente del proyecto original
- github.com/microsoft/Swin-Transformer
- Código de LibreYOLO
- MIT
- Pesos
- MIT, republicados en huggingface.co/LibreYOLO
- Interpretación
- MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the license text and copyright notice with any copy you redistribute, and it carries no explicit patent grant. LibreYOLO's runtime code for this family is a derived port of the Apache-2.0 timm Swin implementation (Ross Wightman, huggingface/pytorch-image-models), kept parameter-name compatible so the tensors load unchanged; the four released Tiny/Small/Base/Large checkpoints are Microsoft's own MIT-licensed patch-4/window-7 classifiers. Code and weights therefore sit under two different permissive licenses, both of which allow commercial use.
Cita
@inproceedings{liu2021Swin,
title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2021}
}Copiado del bloque de cita de los autores en github.com/microsoft/Swin-Transformer#citing-swin-transformer.