So trainierst, validierst, exportierst und benchmarkst du Ultralytics YOLO-Modelle und nutzt sie für Vorhersagen
Erfahre, wie die Modi train, val, predict, export, track und benchmark von Ultralytics YOLO funktionieren, und erhalte Tipps zu Validierungsmetriken und Benchmark-Ergebnissen aus der Praxis.
Nuvola Ladi4 Min. Lesezeit
Ultralytics-YOLO-Modelle bieten mehrere Modi, die den gesamten Lebenszyklus eines Modells abdecken. Ganz gleich, ob du benutzerdefinierte Modelle für die Objekterkennung trainierst oder mit Segmentierung arbeitest – diese Modi zu verstehen, ist ein wichtiger Schritt.
In der Ultralytics-Dokumentation findest du verschiedene Modi, die du mit deinen Modellen nutzen kannst: zum Trainieren, Validieren, Vorhersagen, Exportieren, Verfolgen oder Benchmarking. Jeder dieser Modi erfüllt einen eigenen Zweck und hilft dir, die Leistung und Bereitstellung deines Modells zu optimieren.
Trainingsmodus#
Sehen wir uns zuerst den Trainingsmodus an. Hier erstellst und verbesserst du dein Modell. Ausführliche Anleitungen und Videoanleitungen findest du in der Dokumentation, die dir den Einstieg ins Training deiner benutzerdefinierten Modelle erleichtern.
Beim Modelltraining wird dem Modell ein neuer Datensatz bereitgestellt, damit es verschiedene Muster lernen kann. Nach dem Training lässt sich das Modell in Echtzeit verwenden, um neu auftretende Objekte zu erkennen, auf die es trainiert wurde. Bevor du mit dem Training beginnst, musst du deinen Datensatz im YOLO-Format annotieren.
Validierungsmodus#
Sehen wir uns als Nächstes den Validierungsmodus an. Die Validierung ist wichtig, um Hyperparameter abzustimmen und sicherzustellen, dass dein Modell gute Ergebnisse erzielt. Ultralytics bietet verschiedene Validierungsoptionen, darunter automatische Einstellungen, Unterstützung für mehrere Metriken und Kompatibilität mit der Python API. Du kannst die Validierung sogar mit einem einzigen Befehl direkt über die Befehlszeile (CLI) ausführen.
Warum validieren?#
Die Validierung ist entscheidend für:
- Präzision: Sicherstellen, dass dein Modell Objekte korrekt erkennt.
- Komfort: Den Validierungsprozess vereinfachen.
- Flexibilität: Mehrere Validierungsverfahren anbieten.
- Abstimmung der Hyperparameter: Dein Modell für eine bessere Leistung optimieren.
Ultralytics bietet außerdem Anwendungsbeispiele, die du kopieren und in deine Python-Skripte einfügen kannst. Diese Beispiele enthalten Parameter wie Bildgröße, Stapelgröße, Gerät (CPU oder GPU) und Schnittmenge über Vereinigungsmenge (IoU).
Vorhersagemodus#
Sobald dein Modell trainiert und validiert ist, kannst du Vorhersagen erstellen. Im Vorhersagemodus führst du Inferenzen mit neuen Daten aus und siehst dein Modell in Aktion. Dieser Modus eignet sich ideal, um die Leistung deines Modells mit realen Daten zu testen. Mit nur wenigen Zeilen Python-Code kannst du Vorhersagen für deine Bilder erstellen.
Exportmodus#
Nach der Validierung und den Vorhersagen möchtest du dein Modell vielleicht bereitstellen. Im Exportmodus kannst du dein Modell in verschiedene Formate wie ONNX oder TensorRT umwandeln und so die Bereitstellung auf unterschiedlichen Plattformen erleichtern.
Benchmarkmodus#
Zum Schluss gibt es den Benchmarkmodus. Benchmarking ist wichtig, um die Leistung deines Modells in verschiedenen Szenarien zu bewerten. Dieser Modus hilft dir, fundierte Entscheidungen zur Ressourcenzuweisung, Optimierung und Kosteneffizienz zu treffen.
So führst du einen Benchmark aus#
Um einen Benchmark auszuführen, kannst du die in der Dokumentation bereitgestellten Anwendungsbeispiele verwenden. Sie decken wichtige Metriken und Exportformate ab, darunter ONNX und TensorRT. Du kannst auch das Argument quantize für die Ganzzahlquantisierung (INT8) oder halbe Genauigkeit (FP16) festlegen, um zu sehen, wie sich verschiedene Einstellungen auf die Leistung auswirken.
Benchmarking in der Praxis#
Sehen wir uns ein praktisches Beispiel für Benchmarking an. Beim Benchmarking unseres PyTorch-Modells stellen wir auf einer RTX 3070 GPU eine Inferenzgeschwindigkeit von 68 Millisekunden fest. Nach dem Export zu TorchScript sinkt die Inferenzzeit auf 4 Millisekunden, was eine deutliche Verbesserung zeigt.
Bei ONNX-Modellen erreichen wir eine Inferenzgeschwindigkeit von 21 Millisekunden. Beim Testen dieser Modelle auf einer CPU (einem Intel i9 der 13. Generation) zeigen sich unterschiedliche Ergebnisse. TorchScript benötigt 115 Millisekunden, während ONNX mit 84 Millisekunden besser abschneidet. OpenVINO, das für Intel-Hardware optimiert ist, erreicht schließlich 23 Millisekunden.

Abb. 1: Nicolai Nielsen zeigt, wie sich mit Ultralytics-YOLO-Modellen Benchmarktests ausführen lassen.
Die Bedeutung von Benchmarking#
Benchmarking zeigt, wie sich unterschiedliche Hardware und Exportformate auf die Leistung deines Modells auswirken können. Es ist wichtig, deine Modelle zu benchmarken, insbesondere wenn du sie auf speziell angepasster Hardware oder Edge-Geräten bereitstellen möchtest. So stellst du sicher, dass dein Modell für die Zielumgebung optimiert ist und die bestmögliche Leistung erzielt.
Fazit#
Zusammenfassend sind die Modi in der Ultralytics-Dokumentation leistungsstarke Werkzeuge zum Trainieren, Validieren, Vorhersagen, Exportieren und Benchmarken deiner YOLO-Modelle. Jeder Modus spielt eine wichtige Rolle bei der Optimierung deines Modells und der Vorbereitung auf die Bereitstellung.
Denk daran, unsere Community zu erkunden und ihr beizutreten sowie die bereitgestellten Codeausschnitte in deinen Projekten auszuprobieren. Mit diesen Werkzeugen kannst du leistungsstarke Modelle erstellen und sicherstellen, dass sie in jeder Umgebung effizient laufen.
Verfasst von
Kommentare
Stelle eine Frage, teile deine Ergebnisse oder hilf anderen.










