Swin Transformer
Swin Transformer V1 est un vision transformer hiérarchique qui calcule l'attention dans des fenêtres locales décalées plutôt que sur l'image entière. LibreYOLO fournit quatre tailles pour la classification d'images.
- Tâches
- classify
- Tailles
- t, s, b, l at 224 px
- Installer
pip install libreyolo- Niveau de support
- Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
- Licences
- Code Apache-2.0, poids MIT. Usage commercial
Installer
Swin ne nécessite aucun extra facultatif. Tous ses imports sont inclus dans l'installation de base.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.
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 classificateur renvoie result.probs au lieu de result.boxes\u00a0: top1 et
top5 donnent les indices de classes, tandis que top1conf et top5conf
donnent leurs confiances. Chaque taille utilise une entrée fixe de 224\u00a0px, car
la dernière étape d'attention est construite pour cette résolution. La
prédiction, la validation et l'export lèvent tous une erreur si vous
transmettez une autre valeur à imgsz. Consultez la
prédiction pour les sources, le streaming et la gestion des
résultats.
Variantes
Quatre tailles, de tiny à large, sont construites à partir de la même tour à fenêtres décalées et se distinguent par la largeur des embeddings et la profondeur des étapes. La taille large est pré-entraînée sur ImageNet-22k et affinée sur ImageNet-1k\u00a0; les trois autres sont directement entraînées sur ImageNet-1k. LibreYOLO fournit cette famille uniquement pour l'inférence\u00a0: la prédiction, la validation top-1/top-5 de type ImageNet et l'export sont pris en charge, mais la recette d'entraînement ImageNet upstream n'est pas implémentée.
Valider
val() s'exécute sur un sous-ensemble de type ImageFolder (un répertoire avec
des sous-dossiers train/ et val/, un dossier par classe) et renvoie
l'exactitude top-1 et top-5.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt") # data est la racine d'un répertoire avec des sous-ensembles de dossiers par classe# train/ et val/ (structure ImageFolder), et non le YAML d'un 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/Exporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX : pris en charge | classify to TorchScript : pris en charge | classify to ExecuTorch : pris en charge | classify to TensorRT : pris en charge | classify to OpenVINO : pris en charge | classify to Paddle : non pris en charge | classify to MNN : non pris en charge | classify to RKNN : non pris en charge | classify to ncnn : pris en charge | classify to TFLite : non pris en charge | classify to CoreML : non pris en charge | classify to Core AI : non pris en charge |
Un artefact exporté se recharge dans LibreYOLO() grâce au suffixe de son
fichier. Un fichier .onnx ou .engine se comporte donc comme un checkpoint
et renvoie les mêmes Results. La page Export énumère les
arguments acceptés par chaque format ainsi que les extras ajoutés par certains.
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 fabrique détermine le chemin selon le suffixe du fichier ; un artefact exporté se charge# donc comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreSwint-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoints
Tous les fichiers de poids publiés pour cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| classify | ||
| LibreSwint-cls.pt | 224 | mit |
| LibreSwins-cls.pt | 224 | mit |
| LibreSwinb-cls.pt | 224 | mit |
| LibreSwinl-cls.pt | 224 | mit |
Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.
Licence
Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.
Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.
- Travail d'origine
- Swin Transformer, Microsoft Research
- Licence du projet d'origine
- MIT
- Source du projet d'origine
- github.com/microsoft/Swin-Transformer
- Code de LibreYOLO
- MIT
- Poids
- MIT, republiés sur huggingface.co/LibreYOLO
- Interprétation
- 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.
Citation
@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}
}Copié depuis le bloc de citation des auteurs sur github.com/microsoft/Swin-Transformer#citing-swin-transformer.