Wie man mit Ultralytics YOLO-Modellen trainiert, validiert, vorhersagt, exportiert und benchmarkt

24. Juli 2024
Lernen Sie, wie man mit Ultralytics YOLO-Modellen trainiert, validiert, vorhersagt, exportiert und Benchmarks durchführt!

24. Juli 2024
Lernen Sie, wie man mit Ultralytics YOLO-Modellen trainiert, validiert, vorhersagt, exportiert und Benchmarks durchführt!
Tauchen Sie ein in die Welt von Ultralytics und erkunden Sie die verschiedenen Modi, die für verschiedene YOLO-Modelle zur Verfügung stehen. Ob Sie nun benutzerdefinierte Objekterkennungsmodelle trainieren oder an der Segmentierung arbeiten, das Verständnis dieser Modi ist ein entscheidender Schritt. Legen wir gleich los!
In der Ultralytics-Dokumentation finden Sie mehrere Modi, die Sie für Ihre Modelle verwenden können, sei es zum Trainieren, Validieren, Vorhersagen, Exportieren, Benchmarking oder Verfolgen. Jeder dieser Modi dient einem bestimmten Zweck und hilft Ihnen, die Leistung und den Einsatz Ihres Modells zu optimieren.
Schauen wir uns zunächst den Zugmodus an. Hier können Sie Ihr Modell aufbauen und verfeinern. In der Dokumentation finden Sie detaillierte Anweisungen und Videoanleitungen, die Ihnen den Einstieg in das Training Ihrer eigenen Modelle erleichtern.
Bei der Modellschulung wird ein Modell mit einem neuen Datensatz versorgt, damit es verschiedene Muster lernen kann. Sobald das Modell trainiert ist, kann es in Echtzeit verwendet werden, um neue Objekte zu erkennen, für die es trainiert wurde. Bevor Sie mit dem Trainingsprozess beginnen, müssen Sie Ihren Datensatz unbedingt im YOLO-Format annotieren.
Als Nächstes wollen wir in den Validierungsmodus eintauchen. Die Validierung ist für die Abstimmung von Hyperparametern und die Gewährleistung einer guten Leistung Ihres Modells unerlässlich. Ultralytics bietet eine Vielzahl von Validierungsoptionen, darunter automatische Einstellungen, Unterstützung für mehrere Metriken und Kompatibilität mit der Python-API. Sie können die Validierung sogar direkt über die Befehlszeilenschnittstelle (CLI) mit dem unten stehenden Befehl ausführen.
Die Validierung ist entscheidend für:
Ultralytics bietet auch Benutzerbeispiele, die Sie kopieren und in Ihre Python-Skripte einfügen können. Diese Beispiele umfassen Parameter wie Bildgröße, Stapelgröße, Gerät (CPU oder GPU) und Intersection over Union (IoU).
Sobald Ihr Modell trainiert und validiert ist, ist es an der Zeit, Vorhersagen zu treffen. Im Vorhersagemodus können Sie die Inferenz auf neue Daten anwenden und Ihr Modell in Aktion sehen. Dieser Modus eignet sich perfekt, um die Leistung Ihres Modells an realen Daten zu testen.
Mit dem folgenden Python-Codeausschnitt können Sie Vorhersagen für Ihre Bilder durchführen!
Nach der Validierung und Vorhersage möchten Sie Ihr Modell vielleicht einsetzen. Der Exportmodus ermöglicht es Ihnen, Ihr Modell in verschiedene Formate zu konvertieren, wie z.B. ONNX oder TensorRT, was den Einsatz auf verschiedenen Plattformen erleichtert.
Schließlich gibt es noch den Benchmark-Modus. Benchmarking ist wichtig, um die Leistung Ihres Modells in verschiedenen Szenarien zu bewerten. Dieser Modus hilft Ihnen, fundierte Entscheidungen über Ressourcenzuweisung, Optimierung und Kosteneffizienz zu treffen.
Um einen Benchmark durchzuführen, können Sie die in der Dokumentation enthaltenen Benutzerbeispiele verwenden. Diese Beispiele decken die wichtigsten Metriken und Exportformate ab, einschließlich ONNX und TensorRT. Sie können auch Parameter wie Integer-Quantisierung (INT8) oder Fließkomma-Quantisierung (FP16) angeben, um zu sehen, wie sich verschiedene Einstellungen auf die Leistung auswirken.
Schauen wir uns ein reales Beispiel für Benchmarking an. Beim Benchmarking unseres PyTorch-Modells stellen wir eine Inferenzgeschwindigkeit von 68 Millisekunden auf einer RTX 3070 GPU fest. Nach dem Export in TorchScript sinkt die Inferenzgeschwindigkeit auf 4 Millisekunden, was eine deutliche Verbesserung darstellt.
Bei ONNX-Modellen erreichen wir eine Inferenzgeschwindigkeit von 21 Millisekunden. Beim Testen dieser Modelle auf einer CPU (einem Intel i9 der 13. Generation) sehen wir unterschiedliche Ergebnisse. TorchScript läuft mit 115 Millisekunden, während ONNX mit 84 Millisekunden besser abschneidet. Schließlich erreicht OpenVINO, das für Intel-Hardware optimiert ist, nur noch 23 Millisekunden.
Benchmarking zeigt, wie sich unterschiedliche Hardware und Exportformate auf die Leistung Ihres Modells auswirken können. Es ist wichtig, dass Sie Ihre Modelle einem Benchmarking unterziehen, vor allem wenn Sie sie auf benutzerdefinierter Hardware oder Edge-Geräten einsetzen möchten. Dieser Prozess stellt sicher, dass Ihr Modell für die Zielumgebung optimiert ist und die bestmögliche Leistung bietet.
Zusammenfassend lässt sich sagen, dass die Modi in der Ultralytics-Dokumentation leistungsstarke Werkzeuge für das Training, die Validierung, die Vorhersage, den Export und das Benchmarking Ihrer YOLO-Modelle sind. Jeder Modus spielt eine wichtige Rolle bei der Optimierung Ihres Modells und der Vorbereitung auf die Bereitstellung.
Vergessen Sie nicht, unsere Community zu erkunden, ihr beizutreten und die bereitgestellten Codeschnipsel in Ihren Projekten auszuprobieren. Mit diesen Tools können Sie leistungsstarke Modelle erstellen und sicherstellen, dass sie in jeder Umgebung effizient laufen.