Benchmark del modello con Ultralytics YOLO
Visualizzazione del benchmark
Potrebbe essere necessario aggiornare la pagina per visualizzare correttamente i grafici a causa di potenziali problemi con i cookie.
Introduzione
Una volta che il tuo modello è addestrato e validato, il passo logico successivo è valutarne le prestazioni in vari scenari reali. La modalità Benchmark in Ultralytics YOLO26 serve a questo scopo, fornendo un framework robusto per valutare la velocità e l'accuratezza del tuo modello su una gamma di formati di esportazione.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Perché il benchmarking è cruciale?
- Decisioni informate: Ottieni informazioni sui compromessi tra velocità e accuratezza.
- Allocazione delle risorse: Comprendi come i diversi formati di esportazione si comportano su hardware differenti.
- Ottimizzazione: Scopri quale formato di esportazione offre le migliori prestazioni per il tuo caso d'uso specifico.
- Efficienza dei costi: Sfrutta in modo più efficiente le risorse hardware basandoti sui risultati dei benchmark.
Metriche chiave nella modalità Benchmark
- mAP50-95: Per object detection, segmentazione e pose estimation.
- accuracy_top5: Per l'image classification.
- Tempo di inferenza: Tempo impiegato per ogni immagine in millisecondi.
Formati di esportazione supportati
- ONNX: Per prestazioni CPU ottimali
- TensorRT: Per la massima efficienza GPU
- OpenVINO: Per l'ottimizzazione dell'hardware Intel
- CoreML, TensorFlow SavedModel e altro: Per diverse esigenze di distribuzione.
- Esporta in ONNX o OpenVINO per un incremento di velocità della CPU fino a 3x.
- Esporta in TensorRT per un incremento di velocità della GPU fino a 5x.
Esempi di utilizzo
Installa Ultralytics con le dipendenze di esportazione prima di eseguire il benchmark per evitare di mancare pacchetti.
pip install ultralytics[export]Esegui i benchmark di YOLO26n su tutti i formati di esportazione supportati (ONNX, TensorRT, ecc.). Consulta la sezione Argomenti qui sotto per un elenco completo delle opzioni di esportazione.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Argomenti
Argomenti come model, data, imgsz, half, device, verbose e format offrono agli utenti la flessibilità di perfezionare i benchmark in base alle loro esigenze specifiche e confrontare facilmente le prestazioni di diversi formati di esportazione.
| Chiave | Valore predefinito | Descrizione |
|---|---|---|
model | None | Specifica il percorso del file del modello. Accetta sia formati .pt che .yaml, ad esempio "yolo26n.pt" per modelli pre-addestrati o file di configurazione. |
data | None | Percorso di un file YAML che definisce il dataset per il benchmarking, includendo solitamente percorsi e impostazioni per i dati di validazione. Esempio: "coco8.yaml". |
imgsz | 640 | The input image size for the model. Can be a single integer for square images or a tuple (width, height) for non-square, e.g., (640, 480). |
half | False | Abilita l'inferenza FP16 (mezza precisione), riducendo l'utilizzo della memoria e possibilmente aumentando la velocità su hardware compatibile. Usa half=True per abilitarla. |
int8 | False | Attiva la quantizzazione INT8 per prestazioni ulteriormente ottimizzate su dispositivi supportati, particolarmente utile per i dispositivi edge. Imposta int8=True per usarla. |
device | None | Definisce il/i dispositivo/i di calcolo per il benchmarking, come "cpu" o "cuda:0". |
verbose | False | Controlla il livello di dettaglio nell'output di log. Imposta verbose=True per log dettagliati. |
format | '' | Esegue il benchmark solo del formato di esportazione specificato (es. format=onnx). Lascialo vuoto per testare automaticamente ogni formato supportato. |
Formati di esportazione
I benchmark tenteranno di essere eseguiti automaticamente su tutti i formati di esportazione possibili elencati di seguito. In alternativa, puoi eseguire benchmark per un formato specifico utilizzando l'argomento format, che accetta uno qualsiasi dei formati menzionati di seguito.
| Formato | Argomento format | Modello | Metadati | Argomenti |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Vedi i dettagli completi su export nella pagina Esportazione.
FAQ
Come posso confrontare le prestazioni del mio modello YOLO26 utilizzando Ultralytics?
Ultralytics YOLO26 offre una modalità Benchmark per valutare le prestazioni del tuo modello su diversi formati di esportazione. Questa modalità fornisce informazioni su metriche chiave come la mean Average Precision (mAP50-95), l'accuratezza e il tempo di inferenza in millisecondi. Per eseguire i benchmark, puoi utilizzare comandi Python o CLI. Ad esempio, per eseguire il benchmark su una GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Per maggiori dettagli sugli argomenti del benchmark, visita la sezione Argomenti.
Quali sono i vantaggi dell'esportazione dei modelli YOLO26 in formati diversi?
Esportare i modelli YOLO26 in formati diversi come ONNX, TensorRT e OpenVINO ti consente di ottimizzare le prestazioni in base al tuo ambiente di distribuzione. Ad esempio:
- ONNX: Fornisce un incremento di velocità della CPU fino a 3x.
- TensorRT: Offre un incremento di velocità della GPU fino a 5x.
- OpenVINO: Specificamente ottimizzato per hardware Intel.
Questi formati migliorano sia la velocità che l'accuratezza dei tuoi modelli, rendendoli più efficienti per varie applicazioni nel mondo reale. Visita la pagina Esportazione per i dettagli completi.
Perché il benchmarking è cruciale nella valutazione dei modelli YOLO26?
Il benchmarking dei tuoi modelli YOLO26 è essenziale per diverse ragioni:
- Decisioni informate: Comprendi i compromessi tra velocità e accuratezza.
- Allocazione delle risorse: Valuta le prestazioni su diverse opzioni hardware.
- Ottimizzazione: Determina quale formato di esportazione offre le migliori prestazioni per casi d'uso specifici.
- Efficienza dei costi: Ottimizza l'utilizzo dell'hardware in base ai risultati del benchmark.
Metriche chiave come mAP50-95, accuratezza Top-5 e tempo di inferenza aiutano a effettuare queste valutazioni. Consulta la sezione Metriche chiave per ulteriori informazioni.
Quali formati di esportazione sono supportati da YOLO26 e quali sono i loro vantaggi?
YOLO26 supporta una varietà di formati di esportazione, ognuno su misura per hardware e casi d'uso specifici:
- ONNX: Il migliore per prestazioni CPU.
- TensorRT: Ideale per l'efficienza della GPU.
- OpenVINO: Ottimizzato per hardware Intel.
- CoreML e TensorFlow: Utile per iOS e applicazioni ML generali.
Per un elenco completo dei formati supportati e i loro rispettivi vantaggi, dai un'occhiata alla sezione Formati di esportazione supportati.
Quali argomenti posso utilizzare per perfezionare i miei benchmark YOLO26?
Quando esegui i benchmark, diversi argomenti possono essere personalizzati per soddisfare esigenze specifiche:
- model: Percorso del file del modello (es. "yolo26n.pt").
- data: Percorso di un file YAML che definisce il dataset (es. "coco8.yaml").
- imgsz: La dimensione dell'immagine di input, come singolo numero intero o come tupla.
- half: Abilita l'inferenza FP16 per migliori prestazioni.
- int8: Attiva la quantizzazione INT8 per dispositivi edge.
- device: Specifica il dispositivo di calcolo (es. "cpu", "cuda:0").
- verbose: Controlla il livello di dettaglio del log.
Per un elenco completo degli argomenti, consulta la sezione Argomenti.