DeiT
DeiT (Data-efficient image Transformer) est un classifieur Vision Transformer pur, entraîné sur ImageNet-1k seul, sans données de pré-entraînement supplémentaires. LibreYOLO fournit les tailles tiny, small et base en patch-16 comme une pièce de musée figée, en inférence seule.
- Tâches
- classify
- Tailles
- t, s, b at 224 px
- Installer
pip install libreyolo- Niveau de support
- Musée, depuis v. Pièce figée. Corrections de bugs uniquement.
- Licences
- Code Apache-2.0, poids Apache-2.0. Usage commercial
Installation
DeiT ne demande aucun extra au-delà du paquet de base.
pip install libreyoloPrédire
Cette famille est en inférence seule : train() lève NotImplementedError,
si bien que cette page n'a pas de section Entraîner. La prédiction, la
validation et l'export sont tous pris en charge. Les poids sont téléchargés
depuis Hugging Face au premier usage, puis mis en cache localement. Le suffixe
-cls dans le nom de fichier est obligatoire et sélectionne la tâche de
classification.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeiTb-cls.pt")result = model(SAMPLE_IMAGE) print(result.probs.top1, result.probs.top1conf)print(result.probs.top5)libreyolo predict model=LibreDeiTb-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpgL'objet Results renvoyé porte un tenseur probs au lieu de boxes ;
top1 et top5 indexent les 1 000 classes d'ImageNet-1k et top1conf est
le score softmax de la prédiction principale. Chaque taille a une résolution
d'entrée fixe qui vient de son positional embedding : le prétraitement
redimensionne et recadre au centre à cette résolution, et passer un imgsz
différent lève une erreur au lieu de rééchantillonner en silence. Voir la
prédiction pour les sources, le streaming et le traitement des
résultats.
Valider
val() renvoie un dictionnaire avec l'exactitude top-1 et top-5, mesurée sur un
dataset organisé selon la structure de dossiers classique train/<class>/ et
val/<class>/.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeiTb-cls.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])libreyolo val model=LibreDeiTb-cls.pt data=my-dataset.yamlExporter
| 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 via LibreYOLO() selon son extension de
fichier, si bien qu'un fichier .onnx ou .engine se comporte comme un
checkpoint et renvoie le même Results. Exécuter le graphe dans un runtime nu,
sans LibreYOLO installé, est également pris en charge, mais le prétraitement et
le post-traitement sont alors à votre charge.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeiTb-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreDeiTb-cls.pt format=onnxlibreyolo export model=LibreDeiTb-cls.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory s'appuie sur l'extension du fichier, donc un artefact# exporté se charge comme n'importe quel checkpoint et renvoie le# même objet Results.model = LibreYOLO("LibreDeiTb-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoints
Tous les fichiers de poids publiés de cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| classify | ||
| LibreDeiTt-cls.pt | 224 | apache-2.0 |
| LibreDeiTs-cls.pt | 224 | apache-2.0 |
| LibreDeiTb-cls.pt | 224 | apache-2.0 |
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
- DeiT, Meta Research
- Licence du projet d'origine
- Apache-2.0
- Source du projet d'origine
- github.com/facebookresearch/deit
- Code de LibreYOLO
- MIT
- Poids
- Apache-2.0, republiés sur huggingface.co/LibreYOLO
- Interprétation
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. LibreYOLO ships the plain tiny, small and base patch-16 classifiers at fixed 224px only; the distillation-token, CaiT, DeiT III and 384px variants from the same repository are out of scope.
Citation
@InProceedings{pmlr-v139-touvron21a,
title = {Training data-efficient image transformers & distillation through attention},
author = {Touvron, Hugo and Cord, Matthieu and Douze, Matthijs and Massa, Francisco and Sablayrolles, Alexandre and Jegou, Herve},
booktitle = {International Conference on Machine Learning},
pages = {10347--10357},
year = {2021},
volume = {139},
month = {July}
}Copié depuis le bloc de citation des auteurs sur github.com/facebookresearch/deit#-model-zoo.