Zum Inhalt springen

Modell-Benchmarking mit Ultralytics YOLO

Ultralytics YOLO Ökosystem und Integrationen

Benchmark-Visualisierung

Browser aktualisieren

Möglicherweise müssen Sie die Seite aktualisieren, um die Diagramme korrekt anzuzeigen, da es möglicherweise Probleme mit Cookies gibt.











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 in einer Reihe von Exportformaten bietet.



Beobachten: Ultralytics Modi Tutorial: Benchmark

Warum ist Benchmarking so wichtig?

  • Informierte Entscheidungen: Gewinnen Sie Einblicke in die Abwägung zwischen Geschwindigkeit und Genauigkeit.
  • Ressourcenzuweisung: Verstehen Sie, wie verschiedene Exportformate auf unterschiedlicher Hardware funktionieren.
  • Optimieren: Erfahren Sie, welches Exportformat die beste Leistung für Ihren speziellen Anwendungsfall bietet.
  • Kosteneffizienz: Effizientere Nutzung von Hardwareressourcen auf der Grundlage von Benchmark-Ergebnissen.

Schlüsselmetriken im Benchmark-Modus

  • mAP50-95: Für Objekterkennung, Segmentierung und Posenschätzung.
  • accuracy_top5: Für die Bildklassifizierung.
  • Inferenzzeit: Die für jedes Bild benötigte Zeit in Millisekunden.

Unterstützte Exportformate

  • ONNX: Für optimale Leistung CPU
  • TensorRT: Für maximale Effizienz GPU
  • OpenVINO: Für Intel Hardware-Optimierung
  • CoreML, TensorFlow SavedModel , und mehr: Für unterschiedliche Einsatzanforderungen.

Tipp

  • Exportieren Sie nach ONNX oder OpenVINO für eine bis zu 3-fache Beschleunigung von CPU .
  • Export nach TensorRT für eine bis zu 5-fache Beschleunigung GPU .

Beispiele für die Verwendung

Führen Sie YOLO11n-Benchmarks in allen unterstützten Exportformaten aus, einschließlich ONNX, TensorRT usw. 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)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

Argumente

Argumente wie model, data, imgsz, half, deviceund verbose bieten den Nutzern die Flexibilität, die Benchmarks auf ihre spezifischen Bedürfnisse abzustimmen und die Leistung verschiedener Exportformate problemlos 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 bereits trainierte Modelle oder Konfigurationsdateien.
data None Pfad zu einer YAML-Datei, die den Datensatz für das Benchmarking definiert, typischerweise mit Pfaden und Einstellungen für Validierungsdaten. Beispiel: "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 aktivieren.
int8 False Aktiviert die INT8-Quantisierung zur weiteren Optimierung der Leistung auf unterstützten Geräten, besonders nützlich für Edge-Geräte. einstellen int8=True zu verwenden.
device None Legt das/die Rechengerät(e) für das Benchmarking fest, z. B. "cpu" oder "cuda:0".
verbose False Steuert den Detaillierungsgrad der Protokollierungsausgabe. Ein boolescher Wert; gesetzt verbose=True für detaillierte Protokolle oder einen Float für Schwellenwertfehler.

Exportformate

Es wird versucht, die Benchmarks automatisch in allen unten aufgeführten möglichen Exportformaten durchzuführen.

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
MNN mnn yolo11n.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch
IMX500 imx yolov8n_imx_model/ imgsz, int8

Vollständig sehen export Details im Exportieren Seite.

FAQ

Wie kann ich die Leistung meines YOLO11 Modells mit Ultralytics vergleichen?

Ultralytics YOLO11 bietet einen Benchmark-Modus zur Bewertung der Leistung Ihres Modells in verschiedenen Exportformaten. Dieser Modus bietet Einblicke in wichtige Metriken wie die mittlere durchschnittliche Genauigkeit (mAP50-95), die Genauigkeit und die Inferenzzeit in Millisekunden. Zur Durchführung von Benchmarks können Sie entweder die Befehle Python oder CLI verwenden. Um beispielsweise 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 Einzelheiten zu den Benchmark-Argumenten finden Sie im Abschnitt Argumente.

Was sind die Vorteile des Exports von YOLO11 Modellen in verschiedene Formate?

Durch den Export von YOLO11 -Modellen in verschiedene Formate wie ONNX, TensorRT und OpenVINO können Sie die Leistung je nach Ihrer Einsatzumgebung optimieren. Zum Beispiel:

  • ONNX: Bietet bis zu 3x mehr Geschwindigkeit CPU .
  • TensorRT: Bietet bis zu 5x mehr Geschwindigkeit GPU .
  • OpenVINO: Speziell optimiert für Intel Hardware. Diese Formate verbessern sowohl die Geschwindigkeit als auch die Genauigkeit Ihrer Modelle und machen sie für verschiedene reale Anwendungen effizienter. Besuchen Sie die Seite Export für weitere Informationen.

Warum ist Benchmarking bei der Bewertung von YOLO11 Modellen so wichtig?

Das Benchmarking Ihrer YOLO11 Modelle ist aus mehreren Gründen wichtig:

  • Fundierte Entscheidungen: Verstehen Sie die Abwägung zwischen Geschwindigkeit und Genauigkeit.
  • Ressourcen-Zuweisung: Messen Sie die Leistung der verschiedenen Hardware-Optionen.
  • Optimieren: Bestimmen Sie, welches Exportformat die beste Leistung für bestimmte Anwendungsfälle bietet.
  • Kosteneffizienz: Optimieren Sie die Hardware-Nutzung auf der Grundlage von Benchmark-Ergebnissen. Schlüsselmetriken wie mAP50-95, Top-5-Genauigkeit und Inferenzzeit helfen bei diesen Bewertungen. Weitere Informationen finden Sie im Abschnitt Schlüsselmetriken.

Welche Exportformate werden von YOLO11 unterstützt, und welche Vorteile haben sie?

YOLO11 unterstützt eine Vielzahl von Exportformaten, die jeweils auf bestimmte 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 zur Feinabstimmung meiner YOLO11 Benchmarks verwenden?

Bei der Durchführung von Benchmarks können mehrere Argumente an die jeweiligen Bedürfnisse angepasst werden:

  • Modell: Pfad zur Modelldatei (z. B. "yolo11n.pt").
  • Daten: Pfad zu einer YAML-Datei, die den Datensatz definiert (z. B. "coco8.yaml").
  • imgsz: Die Größe des Eingabebildes, entweder als einzelne Ganzzahl oder als Tupel.
  • halb: Aktivieren Sie FP16-Inferenz für bessere Leistung.
  • int8: Aktiviert die INT8-Quantisierung für Edge-Geräte.
  • Gerät: Geben Sie das Berechnungsgerät an (z. B. "cpu", "cuda:0").
  • Ausführlich: Steuert den Detaillierungsgrad der Protokollierung. Eine vollständige Liste der Argumente finden Sie im Abschnitt Argumente.
📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 2 Tagen

Kommentare