Modell-Benchmarking mit Ultralytics YOLO
Einführung
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.
Pass auf: Ultralytics Modi Tutorial: Benchmark
Warum ist Benchmarking so wichtig?
- Informierte Entscheidungen: Erhalte Einblicke in die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
- Ressourcenzuweisung: Verstehe, wie verschiedene Exportformate auf unterschiedlicher Hardware funktionieren.
- Optimierung: Erfahre, welches Exportformat die beste Leistung für deinen speziellen Anwendungsfall bietet.
- Kosteneffizienz: Nutze die Hardware-Ressourcen auf der Grundlage von Benchmark-Ergebnissen effizienter.
Schlüsselmetriken im Benchmark-Modus
- mAP50-95: For object detection, segmentation, and pose estimation.
- accuracy_top5: For image classification.
- Inferenzzeit: Die für jedes Bild benötigte Zeit in Millisekunden.
Unterstützte Exportformate
- ONNX: Für optimale Leistung CPU
- TensorRT: Für maximale GPU Effizienz
- OpenVINO: Für Intel Hardware-Optimierung
- CoreML, TensorFlow SavedModel , und mehr: Für verschiedene Einsatzzwecke.
Tipp
- Exportiere nach ONNX oder OpenVINO , um die Geschwindigkeit von CPU bis zu 3x zu erhöhen.
- Exportiere nach TensorRT , um bis zu 5x schneller zu sein GPU .
Verwendungsbeispiele
Run YOLO11n benchmarks on all supported export formats including ONNX, TensorRT etc. See Arguments section below for a full list of export arguments.
Beispiel
Argumente
Argumente wie model
, data
, imgsz
, half
, device
, und verbose
bieten den Nutzern die Flexibilität, die Benchmarks auf ihre spezifischen Bedürfnisse abzustimmen und die Leistung verschiedener Exportformate mühelos zu vergleichen.
Schlüssel | Standardwert | Beschreibung |
---|---|---|
model |
None |
Gibt den Pfad zur Modelldatei an. Akzeptiert sowohl .pt und .yaml Formate, z. B., "yolo11n.pt" für vortrainierte Modelle oder Konfigurationsdateien. |
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 |
Die Größe des Eingabebildes für das Modell. Kann eine einzelne Ganzzahl für quadratische Bilder oder ein Tupel sein (width, height) für nicht quadratisch, z.B., (640, 480) . |
half |
False |
Ermöglicht FP16 (halbpräzise) Inferenz, was den Speicherverbrauch reduziert und möglicherweise die Geschwindigkeit auf kompatibler Hardware erhöht. verwenden half=True zu ermöglichen. |
int8 |
False |
Aktiviert die INT8-Quantisierung für eine weiter optimierte Leistung auf unterstützten Geräten, besonders nützlich für Edge-Geräte. setzen int8=True zu verwenden. |
device |
None |
Legt das/die Rechengerät(e) für das Benchmarking fest, wie z. B. "cpu" , "cuda:0" oder eine Liste von Geräten wie "cuda:0,1" für mehrereGPU Aufstellungen. |
verbose |
False |
Steuert den Detailgrad der Logging-Ausgabe. Ein boolescher Wert; gesetzt verbose=True für detaillierte Protokolle oder einen Float für Schwellenwertfehler. |
Formate exportieren
Die Benchmarks versuchen, automatisch in allen unten aufgeführten möglichen Exportformaten zu laufen.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
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 Kante 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 |
Siehe voll export
Details in der exportieren Seite.
FAQ
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:
Beispiel
Weitere Details zu den Benchmark-Argumenten findest du im Abschnitt " Argumente".
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: Bietet bis zu 3x mehr Geschwindigkeit CPU .
- TensorRT: Bietet eine bis zu 5x höhere Geschwindigkeit GPU .
- OpenVINO: Speziell optimiert für Intel Hardware. Diese Formate verbessern sowohl die Geschwindigkeit als auch die Genauigkeit deiner Modelle und machen sie so effizienter für verschiedene Anwendungen in der Praxis. Auf der Seite Export findest du alle Details.
Why is benchmarking crucial in evaluating YOLO11 models?
Benchmarking your YOLO11 models is essential for several reasons:
- Informierte Entscheidungen: Verstehe die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
- Ressourcenzuweisung: Prüfe die Leistung verschiedener Hardware-Optionen.
- Optimieren: Bestimme, welches Exportformat die beste Leistung für bestimmte Anwendungsfälle bietet.
- Kosteneffizienz: Optimiere den Hardware-Einsatz auf Basis der Benchmark-Ergebnisse. Schlüsselkennzahlen wie mAP50-95, Top-5-Genauigkeit und Inferenzzeit helfen bei diesen Bewertungen. Weitere Informationen findest du im Abschnitt Schlüsselmetriken.
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: Am besten für CPU Leistung.
- TensorRT: Ideal für GPU Effizienz.
- OpenVINO: Optimiert für Intel Hardware.
- 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?
Bei der Durchführung von Benchmarks können verschiedene Argumente an die jeweiligen Bedürfnisse angepasst werden:
- model: Path to the model file (e.g., "yolo11n.pt").
- Daten: Pfad zu einer YAML-Datei, die den Datensatz definiert (z. B. "coco8.yaml").
- imgsz: Die Größe des Eingangsbildes, entweder als einzelne Ganzzahl oder als Tupel.
- halb: Aktiviere FP16-Inferenz für bessere Leistung.
- int8: Aktiviere die INT8-Quantisierung für Edge Devices.
- Gerät: Gib das Berechnungsgerät an (z. B. "cpu", "cuda:0").
- Ausführlich: Legt den Detaillierungsgrad der Protokollierung fest. Eine vollständige Liste der Argumente findest du im Abschnitt Argumente.