Modell-Benchmarking mit Ultralytics YOLO
Benchmark-Visualisierung
Browser aktualisieren
Möglicherweise müssen Sie die Seite aktualisieren, um die Diagramme aufgrund potenzieller Cookie-Probleme korrekt anzuzeigen.
Einführung
Sobald Ihr Modell trainiert und validiert ist, besteht der nächste logische Schritt darin, seine Leistung in verschiedenen realen Szenarien zu bewerten. Der Benchmark-Modus in Ultralytics YOLO11 dient diesem Zweck, indem er einen robusten Rahmen für die Bewertung der Geschwindigkeit und Genauigkeit Ihres Modells über eine Reihe von Exportformaten hinweg bietet.
Ansehen: Benchmark Ultralytics YOLO11 Modelle | Wie vergleicht man die Modellleistung auf verschiedener Hardware?
Warum ist Benchmarking entscheidend?
- Fundierte Entscheidungen: Gewinnen Sie Einblicke in die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
- Ressourcenallokation: Verstehen Sie, wie verschiedene Exportformate auf unterschiedlicher Hardware funktionieren.
- Optimierung: Finden Sie heraus, welches Exportformat die beste Leistung für Ihren spezifischen Anwendungsfall bietet.
- Kosteneffizienz: Nutzen Sie Hardware-Ressourcen effizienter auf der Grundlage von Benchmark-Ergebnissen.
Schlüsselmetriken im Benchmark-Modus
- mAP50-95: Für Objekterkennung, Segmentierung und Pose-Schätzung.
- accuracy_top5: Für Bildklassifizierung.
- Inferenzzeit: Zeit, die für jedes Bild in Millisekunden benötigt wird.
Unterstützte Exportformate
- ONNX: Für optimale CPU-Leistung
- TensorRT: Für maximale GPU-Effizienz
- OpenVINO: Für die Optimierung der Intel-Hardware
- CoreML, TensorFlow SavedModel und mehr: Für vielfältige Bereitstellungsanforderungen.
Tipp
- Exportieren Sie nach ONNX oder OpenVINO für bis zu 3x CPU-Beschleunigung.
- Exportieren Sie nach TensorRT für bis zu 5x GPU-Beschleunigung.
Anwendungsbeispiele
Führen Sie YOLO11n-Benchmarks für alle unterstützten Exportformate einschließlich ONNX, TensorRT usw. aus. Eine vollständige Liste der Exportargumente finden Sie im Abschnitt Argumente weiter unten.
Beispiel
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
Argumente
Argumente wie model
, data
, imgsz
, half
, device
, verbose
und format
geben Benutzern die Flexibilität, die Benchmarks an ihre spezifischen Bedürfnisse anzupassen und die Leistung verschiedener Exportformate problemlos zu vergleichen.
Schlüssel | Standardwert | Beschreibung |
---|---|---|
model |
None |
Gibt den Pfad zur Modelldatei an. Akzeptiert beide .pt und .yaml Formate, z. B. "yolo11n.pt" für vortrainierte Modelle oder Konfigurationsdateien. |
data |
None |
Pfad zu einer YAML-Datei, die den Datensatz für das Benchmarking definiert und typischerweise Pfade und Einstellungen für Validierungsdaten. Beispiel: "coco8.yaml" . |
imgsz |
640 |
Die Eingabebildgröße für das Modell. Kann eine einzelne ganze Zahl für quadratische Bilder oder ein Tupel sein (width, height) für nicht-quadratische Bilder, z.B. (640, 480) . |
half |
False |
Aktiviert die FP16-Inferenz (Halbpräzision), wodurch der Speicherverbrauch reduziert und möglicherweise die Geschwindigkeit auf kompatibler Hardware erhöht wird. Verwenden Sie half=True zum Aktivieren. |
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 Sie int8=True zur Verwendung. |
device |
None |
Definiert die(das) Rechengerät(e) für das Benchmarking, wie z.B. "cpu" oder "cuda:0" . |
verbose |
False |
Steuert den Detaillierungsgrad der Protokollausgabe. Setzen Sie verbose=True für detaillierte Protokolle. |
format |
'' |
Führen Sie einen Benchmark des Modells in einem einzelnen Exportformat durch, z. B. format=onnx |
Exportformate
Benchmarks werden automatisch für alle unten aufgeführten möglichen Exportformate ausgeführt. Alternativ können Sie Benchmarks für ein bestimmtes Format ausführen, indem Sie die folgende Option verwenden: format
Argument, das alle unten genannten Formate akzeptiert.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
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 |
Vollständige export
Details auf der Export Seite.
FAQ
Wie kann ich die Leistung meines YOLO11-Modells mit Ultralytics benchmarken?
Ultralytics YOLO11 bietet einen Benchmark-Modus zur Bewertung der Leistung Ihres Modells in verschiedenen Exportformaten. Dieser Modus bietet Einblicke in wichtige Metriken wie Mean Average Precision (mAP50-95), Genauigkeit und Inferenzzeit in Millisekunden. Um Benchmarks auszuführen, können Sie entweder Python- oder CLI-Befehle verwenden. Zum Beispiel, um einen Benchmark auf einer GPU durchzuführen:
Beispiel
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
Weitere Informationen zu den Benchmark-Argumenten finden Sie im Abschnitt Argumente.
Welche Vorteile bietet das Exportieren von YOLO11-Modellen in verschiedene Formate?
Das Exportieren von YOLO11-Modellen in verschiedene Formate wie ONNX, TensorRT und OpenVINO ermöglicht es Ihnen, die Leistung basierend auf Ihrer Bereitstellungsumgebung zu optimieren. Zum Beispiel:
- ONNX: Bietet bis zu 3x CPU-Beschleunigung.
- TensorRT: Bietet bis zu 5x GPU-Beschleunigung.
- OpenVINO: Speziell für Intel-Hardware optimiert.
Diese Formate verbessern sowohl die Geschwindigkeit als auch die Genauigkeit Ihrer Modelle und machen sie effizienter für verschiedene reale Anwendungen. Besuchen Sie die Seite Export für vollständige Details.
Warum ist Benchmarking bei der Bewertung von YOLO11-Modellen so wichtig?
Das Benchmarking Ihrer YOLO11-Modelle ist aus mehreren Gründen unerlässlich:
- Fundierte Entscheidungen: Verstehen Sie die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
- Ressourcenzuweisung: Messen Sie die Leistung über verschiedene Hardwareoptionen hinweg.
- Optimierung: Bestimmen Sie, welches Exportformat die beste Leistung für bestimmte Anwendungsfälle bietet.
- Kosteneffizienz: Optimieren Sie die Hardware-Nutzung basierend auf den Benchmark-Ergebnissen.
Wichtige Metriken wie mAP50-95, Top-5-Genauigkeit und Inferenzzeit helfen bei diesen Bewertungen. Weitere Informationen finden Sie im Abschnitt Wichtige Metriken.
Welche Exportformate werden von YOLO11 unterstützt und welche Vorteile bieten sie?
YOLO11 unterstützt eine Vielzahl von Exportformaten, die jeweils auf spezifische Hardware und Anwendungsfälle zugeschnitten sind:
- ONNX: Am besten für CPU-Leistung.
- TensorRT: Ideal für GPU-Effizienz.
- OpenVINO: Optimiert für Intel-Hardware.
- CoreML & TensorFlow: Nützlich für iOS- und allgemeine ML-Anwendungen.
Eine vollständige Liste der unterstützten Formate und ihrer jeweiligen Vorteile finden Sie im Abschnitt Unterstützte Exportformate.
Welche Argumente kann ich verwenden, um meine YOLO11-Benchmarks zu optimieren?
Beim Ausführen von Benchmarks können verschiedene Argumente angepasst werden, um spezifischen Anforderungen gerecht zu werden:
- model: Pfad zur Modelldatei (z.B. "yolo11n.pt").
- data: Pfad zu einer YAML-Datei, die den Datensatz definiert (z.B. "coco8.yaml").
- imgsz: Die Eingabebildgröße, entweder als einzelne ganze Zahl oder als Tupel.
- half: Aktivieren Sie die FP16-Inferenz für eine bessere Leistung.
- int8: Aktivieren Sie die INT8-Quantisierung für Edge-Geräte.
- device: Geben Sie das Rechengerät an (z. B. "cpu", "cuda:0").
- verbose: Steuert den Detaillierungsgrad der Protokollierung.
Eine vollständige Liste der Argumente finden Sie im Abschnitt Argumente.