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
Nachdem Ihr Modell trainiert und validiert wurde, ist der nächste logische Schritt die Bewertung seiner Leistung in verschiedenen realen Szenarien. Der Benchmark-Modus in Ultralytics YOLO26 dient diesem Zweck, indem er ein robustes Framework zur Bewertung der Geschwindigkeit und Genauigkeit Ihres Modells über eine Reihe von Exportformaten hinweg bereitstellt.
Ansehen: Ultralytics YOLO26-Modelle benchmarken | Wie vergleicht man die Modellleistung auf unterschiedlicher 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 object detection, segmentation 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 YOLO26n-Benchmarks für alle unterstützten Exportformate (ONNX, TensorRT usw.) aus. Eine vollständige Liste der Exportoptionen finden Sie im Abschnitt Argumente unten.
Beispiel
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo26n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo26n.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. "yolo26n.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 | '' | Benchmarking nur für das angegebene Exportformat (z.B., format=onnx). Lassen Sie es leer, um jedes unterstützte Format automatisch zu testen. |
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 | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Vollständige export Details auf der Export Seite.
FAQ
Wie messe ich die Leistung meines YOLO26-Modells mit Ultralytics?
Ultralytics YOLO26 bietet einen Benchmark-Modus zur Bewertung der Modellleistung über verschiedene Exportformate hinweg. Dieser Modus liefert Einblicke in Schlüsselmetriken wie die mittlere durchschnittliche Präzision (mAP50-95), Genauigkeit und Inferenzzeit in Millisekunden. Um Benchmarks auszuführen, können Sie entweder Python- oder CLI-Befehle verwenden. Zum Beispiel, um auf einer GPU zu benchmarken:
Beispiel
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo26n.pt data='coco8.yaml' imgsz=640 half=False device=0
Weitere Informationen zu den Benchmark-Argumenten finden Sie im Abschnitt Argumente.
Welche Vorteile bietet der Export von YOLO26-Modellen in verschiedene Formate?
Der Export von YOLO26-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 Evaluierung von YOLO26-Modellen entscheidend?
Das Benchmarking Ihrer YOLO26-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 der Durchführung dieser Bewertungen. Weitere Informationen finden Sie im Abschnitt Wichtige Metriken.
Welche Exportformate werden von YOLO26 unterstützt und welche Vorteile bieten sie?
YOLO26 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 YOLO26-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. „yolo26n.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.