Vai al contenuto

Benchmarking del modello con Ultralytics YOLO

Ultralytics YOLO ecosistema e integrazioni

Introduzione

Once your model is trained and validated, the next logical step is to evaluate its performance in various real-world scenarios. Benchmark mode in Ultralytics YOLO11 serves this purpose by providing a robust framework for assessing the speed and accuracy of your model across a range of export formats.



Guarda: Ultralytics Tutorial sulle modalità: Benchmark

Perché il benchmarking è fondamentale?

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

Metriche chiave in modalità Benchmark

  • mAP50-95: For object detection, segmentation, and pose estimation.
  • accuracy_top5: For image classification.
  • Tempo di inferenza: tempo impiegato per ogni immagine in millisecondi.

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 accelerare fino a 5 volte GPU .

Esempi di utilizzo

Run YOLO11n benchmarks on all supported export formats including ONNX, TensorRT etc. See Arguments section below for a full list of export arguments.

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 Path to a YAML file defining the dataset for benchmarking, typically including paths and settings for validation data. Example: "coco8.yaml".
imgsz 640 La dimensione dell'immagine di input per il modello. Può essere un singolo numero intero per le immagini quadrate oppure una tupla (width, height) per non quadrato, ad esempio, (640, 480).
half False Abilita l'inferenza FP16 (a mezza precisione), riducendo l'uso della memoria e possibilmente aumentando la velocità su hardware compatibile. Utilizza 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 dispositivo o i dispositivi di calcolo per il benchmarking, ad esempio "cpu", "cuda:0"o un elenco di dispositivi come "cuda:0,1" per le configurazioni multiGPU .
verbose False Controlla il livello di dettaglio dell'output di registrazione. Un valore booleano; imposta verbose=True per i log dettagliati o un float 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
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch

Vedi tutto export dettagli nella sezione Esportazione pagina.

DOMANDE FREQUENTI

How do I benchmark my YOLO11 model's performance using Ultralytics?

Ultralytics YOLO11 offers a Benchmark mode to assess your model's performance across different export formats. This mode provides insights into key metrics such as mean Average Precision (mAP50-95), accuracy, and inference time in milliseconds. To run benchmarks, you can use either Python or CLI commands. For example, to benchmark on a 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, visita la sezione Argomenti.

What are the benefits of exporting YOLO11 models to different formats?

Exporting YOLO11 models to different formats such as ONNX, TensorRT, and OpenVINO allows you to optimize performance based on your deployment environment. For instance:

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

Why is benchmarking crucial in evaluating YOLO11 models?

Benchmarking your YOLO11 models is essential for several reasons:

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

Which export formats are supported by YOLO11, and what are their advantages?

YOLO11 supports a variety of export formats, each tailored for specific hardware and use cases:

  • ONNX: Il migliore per le prestazioni di CPU .
  • TensorRT: Ideale per l'efficienza di GPU .
  • OpenVINO: Ottimizzato per l'hardware di Intel .
  • CoreML & TensorFlow: Useful for iOS and general ML applications. For a complete list of supported formats and their respective advantages, check out the Supported Export Formats section.

What arguments can I use to fine-tune my YOLO11 benchmarks?

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

  • model: Path to the model file (e.g., "yolo11n.pt").
  • dati: Percorso di un file YAML che definisce il set di dati (ad esempio, "coco8.yaml").
  • imgsz: la dimensione dell'immagine in ingresso, sia come singolo numero intero che come tupla.
  • metà: Abilita l'inferenza FP16 per ottenere prestazioni migliori.
  • int8: attiva la quantizzazione INT8 per i dispositivi edge.
  • dispositivo: Specifica il dispositivo di calcolo (ad esempio, "cpu", "cuda:0").
  • verboso: Controlla il livello di dettaglio della registrazione. Per un elenco completo degli argomenti, consulta la sezione Argomenti.

📅 Created 11 months ago ✏️ Updated 10 days ago

Commenti