Vai al contenuto

Benchmarking del modello con Ultralytics YOLO

Ultralytics YOLO ecosistema e integrazioni

Visualizzazione dei 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 convalidato, il passo logico successivo è quello di valutarne le prestazioni in vari scenari reali. La modalità Benchmark di Ultralytics YOLO11 serve a questo scopo, fornendo un quadro solido per valutare la velocità e l'accuratezza del modello in una serie di formati di esportazione.



Guarda: Ultralytics Esercitazione sulle modalità: Benchmark

Perché il benchmarking è cruciale?

  • Decisioni informate: Acquisizione di informazioni sui compromessi tra velocità e precisione.
  • Allocazione delle risorse: Capire come si comportano i diversi formati di esportazione su hardware diversi.
  • Ottimizzazione: Scoprite quale formato di esportazione offre le migliori prestazioni per il vostro caso d'uso specifico.
  • Efficienza dei costi: Uso più efficiente delle risorse hardware in base ai risultati dei benchmark.

Metriche chiave in modalità Benchmark

Formati di esportazione supportati

  • ONNX: Per prestazioni ottimali CPU
  • TensorRT: Per la massima efficienza di GPU
  • OpenVINO: Per l'ottimizzazione dell'hardware di Intel
  • CoreML, TensorFlow SavedModel , e altro ancora: Per diverse esigenze di implementazione.

Suggerimento

  • Esportazione in ONNX o OpenVINO per una velocità fino a 3 volte superiore a CPU .
  • Esportazione in TensorRT per una velocità fino a 5 volte superiore a GPU .

Esempi di utilizzo

Esegue i benchmark di YOLO11n su tutti i formati di esportazione supportati, compresi ONNX, TensorRT ecc. Per un elenco completo degli argomenti di esportazione, vedere la sezione Argomenti.

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

Argomenti

Argomenti come model, data, imgsz, half, device, e verbose offrono agli utenti la flessibilità necessaria per adattare i benchmark alle loro esigenze specifiche e per confrontare facilmente le prestazioni di diversi formati di esportazione.

Chiave Valore predefinito Descrizione
model None Specifica il percorso del file del modello. Accetta sia .pt e .yaml formati, ad esempio, "yolo11n.pt" per i modelli pre-addestrati o i file di configurazione.
data None Percorso di un file YAML che definisce il set di dati per il benchmarking, in genere includendo i percorsi e le impostazioni di dati di convalida. Esempio: "coco8.yaml".
imgsz 640 Dimensione dell'immagine in ingresso per il modello. Può essere un singolo numero intero per le immagini quadrate o una tupla (width, height) per i non quadrati, ad es, (640, 480).
half False Abilita l'inferenza FP16 (a mezza precisione), riducendo l'uso della memoria e possibilmente aumentando la velocità su hardware compatibile. Utilizzo half=True per abilitare.
int8 False Attiva la quantizzazione INT8 per ottimizzare ulteriormente le prestazioni sui dispositivi supportati, particolarmente utile per i dispositivi edge. Imposta int8=True da utilizzare.
device None Definisce il/i dispositivo/i di calcolo per il benchmarking, ad esempio "cpu" o "cuda:0".
verbose False Controlla il livello di dettaglio dell'output di registrazione. Un valore booleano; impostare verbose=True per i registri dettagliati o per un valore fluttuante per gli errori di soglia.

Formati di esportazione

I benchmark tenteranno di essere eseguiti automaticamente su tutti i possibili formati di esportazione indicati di seguito.

Formato format Argomento Modello Metadati Argomenti
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, optimize, batch
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n.pb imgsz, batch
TF Lite tflite yolo11n.tflite imgsz, half, int8, batch
TF Bordo TPU edgetpu yolo11n_edgetpu.tflite imgsz
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch
MNN mnn yolo11n.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch
IMX500 imx yolov8n_imx_model/ imgsz, int8

Vedi tutto export dettagli nel Esportazione pagina.

FAQ

Come si fa a fare un benchmark delle prestazioni del modello YOLO11 utilizzando Ultralytics?

Ultralytics YOLO11 offre una modalità Benchmark per valutare le prestazioni del modello in diversi formati di esportazione. Questa modalità fornisce informazioni su metriche chiave come la precisione media (mAP50-95), l'accuratezza e il tempo di inferenza in millisecondi. Per eseguire i benchmark, si possono usare i comandi Python o CLI . Ad esempio, per eseguire un benchmark su 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 dei benchmark, visitate la sezione Argomenti.

Quali sono i vantaggi dell'esportazione dei modelli YOLO11 in diversi formati?

L'esportazione dei modelli YOLO11 in diversi formati, come ONNX, TensorRT e OpenVINO , consente di ottimizzare le prestazioni in base all'ambiente di distribuzione. Ad esempio:

  • ONNX: Fornisce una velocità fino a 3 volte superiore a CPU .
  • TensorRT: Offre una velocità fino a 5 volte superiore a GPU .
  • OpenVINO: Ottimizzati specificamente per l'hardware di Intel . Questi formati migliorano la velocità e l'accuratezza dei modelli, rendendoli più efficienti per varie applicazioni reali. Per maggiori dettagli, visitare la pagina Esportazione.

Perché il benchmarking è fondamentale per valutare i modelli di YOLO11 ?

Il benchmarking dei modelli YOLO11 è essenziale per diversi motivi:

  • Decisioni informate: Comprendere i compromessi tra velocità e precisione.
  • Allocazione delle risorse: Valutare le prestazioni tra le diverse opzioni hardware.
  • Ottimizzazione: Determinare il formato di esportazione che offre le migliori prestazioni per casi d'uso specifici.
  • Efficienza dei costi: Ottimizzare l'uso dell'hardware in base ai risultati dei benchmark. Metriche chiave come mAP50-95, accuratezza Top-5 e tempo di inferenza aiutano a fare queste valutazioni. Per ulteriori informazioni, consultare la sezione Metriche chiave.

Quali sono i formati di esportazione supportati da YOLO11 e quali sono i loro vantaggi?

YOLO11 supporta una varietà di formati di esportazione, ognuno dei quali è stato adattato a hardware e casi d'uso specifici:

  • ONNX: Il migliore per le prestazioni di CPU .
  • TensorRT: Ideale per l'efficienza di GPU .
  • OpenVINO: Ottimizzato per l'hardware di Intel .
  • CoreML & TensorFlow: Utile per iOS e per le applicazioni ML in generale. Per un elenco completo dei formati supportati e dei rispettivi vantaggi, consultare la sezione Formati di esportazione supportati.

Quali argomenti si possono usare per mettere a punto i benchmark di YOLO11 ?

Quando si eseguono i benchmark, è possibile personalizzare diversi argomenti per soddisfare esigenze specifiche:

  • modello: Percorso del file del modello (ad esempio, "yolo11n.pt").
  • dati: Percorso di un file YAML che definisce il set di dati (ad esempio, "coco8.yaml").
  • imgsz: la dimensione dell'immagine di ingresso, come singolo numero intero o come tupla.
  • metà: Abilita l'inferenza FP16 per ottenere prestazioni migliori.
  • int8: attiva la quantizzazione INT8 per i dispositivi edge.
  • dispositivo: Specificare il dispositivo di calcolo (ad esempio, "cpu", "cuda:0").
  • verboso: Controlla il livello di dettaglio della registrazione. Per un elenco completo degli argomenti, consultare la sezione Argomenti.
📅C reato 1 anno fa ✏️ Aggiornato 2 giorni fa

Commenti