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.
Origine
DeiT par Meta Research, Apache-2.0. Article, source
Licences
Code Apache-2.0, poids Apache-2.0. Usage commercial

Installation

DeiT ne demande aucun extra au-delà du paquet de base.

bash
pip install libreyolo

Pré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.

Python
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)
CLI
libreyolo predict model=LibreDeiTb-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg

L'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>/.

Python
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"])
CLI
libreyolo val model=LibreDeiTb-cls.pt data=my-dataset.yaml

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX : pris en chargeclassify to TorchScript : pris en chargeclassify to ExecuTorch : pris en chargeclassify to TensorRT : pris en chargeclassify to OpenVINO : pris en chargeclassify to Paddle : non pris en chargeclassify to MNN : non pris en chargeclassify to RKNN : non pris en chargeclassify to ncnn : pris en chargeclassify to TFLite : non pris en chargeclassify to CoreML : non pris en chargeclassify 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeiTb-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreDeiTb-cls.pt format=onnxlibreyolo export model=LibreDeiTb-cls.pt format=tensorrt half=True
Utiliser le fichier exporté
from 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.

FichierEntrée (px)Licence des poids
classify
LibreDeiTt-cls.pt224apache-2.0
LibreDeiTs-cls.pt224apache-2.0
LibreDeiTb-cls.pt224apache-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.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.