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

Nuvola Ladi

3 Minuten lesen

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.

Zugmodus

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.

Modus validieren

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.

Warum validieren?

Die Validierung ist entscheidend für:

  • Präzision: Sicherstellen, dass Ihr Modell Objekte genau erkennt.
  • Bequemlichkeit: Vereinfachung des Validierungsprozesses.
  • Flexibilität: Bietet mehrere Validierungsmethoden.
  • Abstimmung der Hyperparameter: Optimieren Sie Ihr Modell für eine bessere Leistung.

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

Vorhersage-Modus

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!

Export-Modus

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.

Benchmark-Modus

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.

Wie man ein Benchmarking durchführt

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.

Benchmarking-Beispiel aus der Praxis

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.

__wf_reserved_inherit
Abbildung 1. Nicolai Nielsen demonstriert, wie das Benchmarking mit Ultralytics YOLO-Modellen durchgeführt wird.

Die Bedeutung des Benchmarking

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.

Schlussfolgerung

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.

Lassen Sie uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise in die Zukunft des maschinellen Lernens

Kostenloser Start
Link in die Zwischenablage kopiert