Benchmark del modello con Ultralytics YOLO
Visualizzazione del benchmark
Aggiorna il browser
Potrebbe essere necessario aggiornare la pagina per visualizzare correttamente i grafici a causa di potenziali problemi con i cookie.
Introduzione
Una volta che il modello è stato addestrato e validato, il passo logico successivo è valutarne le prestazioni in vari scenari del mondo reale. La modalità benchmark in Ultralytics YOLO11 serve a questo scopo fornendo un framework robusto per valutare la velocità e l'accuratezza del modello in una vasta gamma di formati di esportazione.
Guarda: Benchmark dei modelli Ultralytics YOLO11 | Come confrontare le prestazioni del modello su hardware diversi?
Perché il benchmarking è fondamentale?
- Decisioni informate: Ottieni informazioni sui compromessi tra velocità e accuratezza.
- Allocazione delle risorse: Comprendi come diversi formati di esportazione si comportano su hardware diversi.
- Ottimizzazione: Scopri quale formato di esportazione offre le migliori prestazioni per il tuo specifico caso d'uso.
- Efficienza dei costi: Utilizza le risorse hardware in modo più efficiente in base ai risultati del benchmark.
Metriche chiave nella modalità benchmark
- mAP50-95: Per object detection, segmentazione e stima della posa.
- accuracy_top5: Per la classificazione delle immagini.
- Tempo di inferenza: Tempo impiegato per ogni immagine in millisecondi.
Formati di esportazione supportati
- ONNX: Per prestazioni ottimali della CPU
- TensorRT: Per la massima efficienza della GPU
- OpenVINO: Per l'ottimizzazione dell'hardware Intel
- CoreML, TensorFlow SavedModel e altro: Per diverse esigenze di implementazione.
Suggerimento
- Esporta in ONNX o OpenVINO per un aumento della velocità della CPU fino a 3 volte.
- Esporta in TensorRT per un aumento della velocità della GPU fino a 5 volte.
Esempi di utilizzo
Esegui benchmark YOLO11n su tutti i formati di esportazione supportati, inclusi ONNX, TensorRT ecc. Consulta la sezione Argomenti di seguito per un elenco completo degli argomenti di esportazione.
Esempio
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.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 mettere a punto i benchmark in base alle loro esigenze specifiche e di confrontare facilmente le prestazioni di diversi formati di esportazione.
Chiave | Valore predefinito | Descrizione |
---|---|---|
model |
None |
Specifica il percorso del file del modello. Accetta entrambi i formati .pt e .yaml , ad esempio, "yolo11n.pt" per modelli pre-addestrati o file di configurazione. |
data |
None |
Percorso di un file YAML che definisce il set di dati per il benchmarking, che in genere include percorsi e impostazioni per dati di validazione. Esempio: "coco8.yaml" . |
imgsz |
640 |
La dimensione dell'immagine di input per il modello. Può essere un singolo numero intero per le immagini quadrate o una tupla (width, height) per non quadrate, ad esempio, (640, 480) . |
half |
False |
Abilita l'inferenza FP16 (mezza precisione), riducendo l'utilizzo della memoria e possibilmente aumentando la velocità sull'hardware compatibile. Usa half=True per abilitare. |
int8 |
False |
Attiva la quantizzazione INT8 per prestazioni ulteriormente ottimizzate sui dispositivi supportati, particolarmente utile per i dispositivi edge. Imposta int8=True per utilizzare. |
device |
None |
Definisce i dispositivi di calcolo per il benchmarking, come "cpu" oppure "cuda:0" . |
verbose |
False |
Controlla il livello di dettaglio nell'output di registrazione. Imposta verbose=True per log dettagliati. |
format |
'' |
Esegui il benchmark del modello su un singolo formato di esportazione. es. format=onnx |
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 il format
argomento, che accetta uno qualsiasi dei formati menzionati di seguito.
Formato | format Argomento |
Modello | Metadati | Argomenti |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
Vedi tutti i export
dettagli nella Esportazione pagina.
FAQ
Come posso valutare le prestazioni del mio modello YOLO11 utilizzando Ultralytics?
Ultralytics YOLO11 offre una modalità Benchmark per valutare le prestazioni del tuo modello in diversi formati di esportazione. Questa modalità fornisce informazioni su metriche chiave come la precisione media media (mAP50-95), l'accuratezza e il tempo di inferenza in millisecondi. Per eseguire i benchmark, puoi utilizzare i comandi python o CLI. Ad esempio, per eseguire il benchmark su una GPU:
Esempio
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.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 di modelli YOLO11 in diversi formati?
L'esportazione di modelli YOLO11 in diversi formati come ONNX, TensorRT e OpenVINO consente di ottimizzare le prestazioni in base al proprio ambiente di distribuzione. Ad esempio:
- ONNX: Fornisce un aumento di velocità della CPU fino a 3 volte.
- TensorRT: Offre un aumento di velocità della GPU fino a 5 volte.
- OpenVINO: Ottimizzato specificamente 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 tutti i dettagli.
Perché il benchmarking è fondamentale nella valutazione dei modelli YOLO11?
Il benchmarking dei tuoi modelli YOLO11 è essenziale per diversi motivi:
- Decisioni informate: Comprendi i compromessi tra velocità e precisione.
- 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 dei benchmark.
Metriche chiave come mAP50-95, accuratezza Top-5 e tempo di inferenza aiutano a effettuare queste valutazioni. Fare riferimento alla sezione Metriche chiave per maggiori informazioni.
Quali formati di esportazione sono supportati da YOLO11 e quali sono i loro vantaggi?
YOLO11 supporta una varietà di formati di esportazione, ciascuno personalizzato per hardware e casi d'uso specifici:
- ONNX: Ideale per le prestazioni della CPU.
- TensorRT: Ideale per l'efficienza della GPU.
- OpenVINO: Ottimizzato per hardware Intel.
- CoreML e TensorFlow: Utile per applicazioni iOS e ML generali.
Per un elenco completo dei formati supportati e dei rispettivi vantaggi, consulta la sezione Formati di esportazione supportati.
Quali argomenti posso usare per ottimizzare i miei benchmark YOLO11?
Durante l'esecuzione dei benchmark, è possibile personalizzare diversi argomenti per soddisfare esigenze specifiche:
- model: Percorso del file del modello (ad esempio, "yolo11n.pt").
- data: Percorso di un file YAML che definisce il set di dati (ad esempio, "coco8.yaml").
- imgsz: La dimensione dell'immagine di input, come un singolo numero intero o una tupla.
- half: Abilita l'inferenza FP16 per prestazioni migliori.
- int8: Attiva la quantizzazione INT8 per i dispositivi edge.
- device: Specifica il dispositivo di calcolo (ad esempio, "cpu", "cuda:0").
- verbose: Controlla il livello di dettaglio della registrazione.
Per un elenco completo degli argomenti, consultare la sezione Argomenti.