DeiT

DeiT (Data-efficient image Transformer) è un classificatore Vision Transformer puro, addestrato solo su ImageNet-1k e senza dati di preaddestramento aggiuntivi. LibreYOLO include le dimensioni tiny, small e base con patch 16 come pezzo da museo congelato e solo per l'inferenza.

Task
classify
Dimensioni
t, s, b at 224 px
Installa
pip install libreyolo
Livello di supporto
Museo, dalla v. Esemplare congelato. Solo correzioni di bug.
Origine
DeiT di Meta Research, Apache-2.0. Articolo, sorgente
Licenze
Codice Apache-2.0, pesi Apache-2.0. Uso commerciale

Installazione

DeiT non richiede nessun extra oltre al pacchetto base.

bash
pip install libreyolo

Predizione

Questa famiglia è solo per l'inferenza: train() solleva NotImplementedError, quindi questa pagina non ha una sezione sull'addestramento. Predizione, validazione ed esportazione sono invece tutte supportate. I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale. Il suffisso -cls nel nome del file è obbligatorio e seleziona il task di classificazione.

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'oggetto Results restituito porta un tensore probs invece di boxes; top1 e top5 indicizzano le 1.000 classi di ImageNet-1k e top1conf è il punteggio softmax della predizione principale. Ogni dimensione ha una risoluzione di input fissa, che deriva dal suo positional embedding: il preprocessing ridimensiona e ritaglia al centro fino a quella risoluzione, e passare un imgsz diverso solleva un errore invece di ricampionare in silenzio. Vedi predizione per sorgenti, streaming e gestione dei risultati.

Validazione

val() restituisce un dizionario con l'accuratezza top-1 e top-5, misurata su un dataset organizzato nella struttura di cartelle convenzionale train/<class>/ e 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

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX: supportatoclassify to TorchScript: supportatoclassify to ExecuTorch: supportatoclassify to TensorRT: supportatoclassify to OpenVINO: supportatoclassify to Paddle: non supportatoclassify to MNN: non supportatoclassify to RKNN: non supportatoclassify to ncnn: supportatoclassify to TFLite: non supportatoclassify to CoreML: non supportatoclassify to Core AI: non supportato

Un artefatto esportato si ricarica con LibreYOLO() in base al suffisso del file, quindi un file .onnx o .engine si comporta come un checkpoint e restituisce lo stesso Results. È supportata anche l'esecuzione del grafo in un runtime nudo, senza LibreYOLO installato, ma in quel caso il preprocessing e il postprocessing li scrivi tu.

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
Usare il file esportato
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory smista in base al suffisso del file, quindi un artefatto# esportato si carica come qualsiasi checkpoint e restituisce lo stesso# oggetto Results.model = LibreYOLO("LibreDeiTb-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

Checkpoint

Tutti i file di pesi pubblicati per questa famiglia.

FileIngresso (px)Licenza dei pesi
classify
LibreDeiTt-cls.pt224apache-2.0
LibreDeiTs-cls.pt224apache-2.0
LibreDeiTb-cls.pt224apache-2.0

Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.

Licenze

Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.

Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.

Lavoro originale
DeiT, Meta Research
Licenza upstream
Apache-2.0
Codice LibreYOLO
MIT
Pesi
Apache-2.0, ripubblicati su huggingface.co/LibreYOLO
Interpretazione
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.

Citazione

@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}
}

Copiato dal blocco di citazione degli autori disponibile su github.com/facebookresearch/deit#-model-zoo.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.