Skip to main content

Modell-Benchmarking mit Ultralytics YOLO

Ultralytics YOLO ecosystem and integrations

Benchmark-Visualisierung

Browser aktualisieren

Möglicherweise musst du die Seite neu laden, um die Diagramme aufgrund potenzieller Cookie-Probleme korrekt anzuzeigen.

Einführung

Sobald dein 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 YOLO26 dient diesem Zweck, indem er ein robustes Framework zur Bewertung der Geschwindigkeit und Genauigkeit deines Modells über eine Reihe von Exportformaten hinweg bietet.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

Warum ist Benchmarking entscheidend?

  • Fundierte Entscheidungen: Gewinne Einblicke in die Abwägungen zwischen Geschwindigkeit und Genauigkeit.
  • Ressourcenallokation: Verstehe, wie verschiedene Exportformate auf unterschiedlicher Hardware funktionieren.
  • Optimierung: Lerne, welches Exportformat für deinen speziellen Anwendungsfall die beste Leistung bietet.
  • Kosteneffizienz: Nutze Hardwareressourcen basierend auf Benchmark-Ergebnissen effizienter.

Wichtige Metriken im Benchmark-Modus

Unterstützte Exportformate

  • ONNX: Für optimale CPU-Leistung
  • TensorRT: Für maximale GPU-Effizienz
  • OpenVINO: Für Intel-Hardwareoptimierung
  • CoreML, TensorFlow SavedModel und mehr: Für diverse Bereitstellungsanforderungen.
Tipp
  • Exportiere in ONNX oder OpenVINO für bis zu 3x CPU-Beschleunigung.
  • Exportiere in TensorRT für bis zu 5x GPU-Beschleunigung.

Anwendungsbeispiele

Führe YOLO26n-Benchmarks über alle unterstützten Exportformate (ONNX, TensorRT usw.) aus. Siehe den Abschnitt Argumente unten für eine vollständige Liste der Exportoptionen.

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")

Argumente

Argumente wie model, data, imgsz, half, device, verbose und format bieten Benutzern die Flexibilität, die Benchmarks an ihre spezifischen Bedürfnisse anzupassen und die Leistung verschiedener Exportformate mühelos zu vergleichen.

SchlüsselStandardwertBeschreibung
modelNoneGibt den Pfad zur Modelldatei an. Akzeptiert beide .pt und .yaml Formate, z. B. "yolo26n.pt" für vortrainierte Modelle oder Konfigurationsdateien.
dataNonePfad zu einer YAML-Datei, die den Datensatz für das Benchmarking definiert, typischerweise einschließlich Pfaden und Einstellungen für Validierungsdaten. Beispiel: "coco8.yaml".
imgsz640Die Eingabebildgröße für das Modell. Kann ein einzelner Integer für quadratische Bilder oder ein Tupel (width, height) für nicht-quadratische Bilder sein, z. B. (640, 480).
halfFalseAktiviert die FP16-Inferenz (Halbpräzision), reduziert den Speicherverbrauch und erhöht möglicherweise die Geschwindigkeit auf kompatibler Hardware. Verwende half=True zum Aktivieren.
int8FalseAktiviert die INT8-Quantisierung für eine weiter optimierte Leistung auf unterstützten Geräten, besonders nützlich für Edge-Geräte. Setze int8=True zur Verwendung.
deviceNoneDefiniert das Rechengerät bzw. die Geräte für das Benchmarking, wie "cpu" oder "cuda:0".
verboseFalseSteuert den Detailgrad der Protokollierungsausgabe. Setze verbose=True für detaillierte Logs.
format''Benchmark nur für das angegebene Exportformat (z. B. format=onnx). Lass es leer, um jedes unterstützte Format automatisch zu testen.

Exportformate

Benchmarks versuchen automatisch, auf allen unten aufgeführten möglichen Exportformaten zu laufen. Alternativ kannst du Benchmarks für ein spezifisches Format ausführen, indem du das format Argument verwendest, das jedes der unten genannten Formate akzeptiert.

Formatformat ArgumentModellMetadatenArgumente
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device

Siehe vollständige export Details auf der Export Seite.

FAQ

Wie kann ich die Leistung meines YOLO26-Modells mit Ultralytics benchen?

Ultralytics YOLO26 bietet einen Benchmark-Modus, um die Leistung deines Modells über verschiedene Exportformate hinweg zu bewerten. Dieser Modus bietet Einblicke in wichtige Metriken wie die mean Average Precision (mAP50-95), Genauigkeit und Inferenzzeit in Millisekunden. Um Benchmarks auszuführen, kannst du entweder Python oder CLI-Befehle verwenden. Zum Beispiel, um auf einer GPU zu benchen:

Beispiel
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

Für weitere Details zu Benchmark-Argumenten besuche den Argumente Abschnitt.

Was sind die Vorteile beim Exportieren von YOLO26-Modellen in verschiedene Formate?

Der Export von YOLO26-Modellen in verschiedene Formate wie ONNX, TensorRT, und OpenVINO ermöglicht es dir, die Leistung basierend auf deiner Bereitstellungsumgebung zu optimieren. Zum Beispiel:

  • ONNX: Bietet bis zu 3-fache CPU-Beschleunigung.
  • TensorRT: Bietet bis zu 5-fache GPU-Beschleunigung.
  • OpenVINO: Speziell für Intel Hardware optimiert.

Diese Formate verbessern sowohl die Geschwindigkeit als auch die Genauigkeit deiner Modelle und machen sie effizienter für verschiedene reale Anwendungen. Besuche die Export Seite für vollständige Details.

Warum ist Benchmarking entscheidend bei der Bewertung von YOLO26-Modellen?

Das Benchmarking deiner YOLO26-Modelle ist aus mehreren Gründen unerlässlich:

  • Fundierte Entscheidungen: Verstehe die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
  • Ressourcenallokation: Messe die Leistung über verschiedene Hardware-Optionen hinweg.
  • Optimierung: Bestimme, welches Exportformat die beste Leistung für spezifische Anwendungsfälle bietet.
  • Kosteneffizienz: Optimiere die Hardwarenutzung basierend auf Benchmark-Ergebnissen.

Wichtige Metriken wie mAP50-95, Top-5-Genauigkeit und Inferenzzeit helfen bei diesen Bewertungen. Siehe den Schlüsselmetriken Abschnitt für weitere Informationen.

Welche Exportformate werden von YOLO26 unterstützt und was sind ihre Vorteile?

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.

Für eine vollständige Liste unterstützter Formate und ihrer jeweiligen Vorteile, schau dir die Unterstützte Exportformate Abschnitt.

Welche Argumente kann ich verwenden, um meine YOLO26-Benchmarks feinabzustimmen?

Beim Ausführen von Benchmarks können mehrere 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 Ganzzahl oder als Tupel.
  • half: Aktiviere FP16-Inferenz für bessere Leistung.
  • int8: Aktiviere INT8-Quantisierung für Edge-Geräte.
  • device: Spezifiziere das Rechengerät (z. B. "cpu", "cuda:0").
  • verbose: Steuere den Detailgrad der Protokollierung.

Für eine vollständige Liste der Argumente, beziehe dich auf die Argumente Abschnitt.

Kommentare