Zum Inhalt springen

Verbesserte YOLOv8 Experimentverfolgung und -visualisierung mit Weights & Biases

Modelle zur Objekterkennung wie Ultralytics YOLOv8 sind aus vielen Computer Vision Anwendungen nicht mehr wegzudenken. Das Training, die Bewertung und der Einsatz dieser komplexen Modelle bringt jedoch einige Herausforderungen mit sich. Die Nachverfolgung wichtiger Trainingskennzahlen, der Vergleich von Modellvarianten, die Analyse des Modellverhaltens und die Erkennung von Problemen erfordern eine umfangreiche Instrumentierung und Experimentverwaltung.

In diesem Leitfaden wird die Integration von Ultralytics YOLOv8 mit Weights & Biases' zur verbesserten Verfolgung von Experimenten, Modell-Checkpointing und Visualisierung der Modellleistung vorgestellt. Er enthält außerdem Anleitungen für die Einrichtung der Integration, das Training, die Feinabstimmung und die Visualisierung der Ergebnisse mit den interaktiven Funktionen von Weights & Biases'.

Weights & Biases

Weights & Biases Übersicht

Weights & Biases ist eine hochmoderne MLOps-Plattform, die für die Verfolgung, Visualisierung und Verwaltung von Machine-Learning-Experimenten entwickelt wurde. Sie bietet eine automatische Protokollierung der Trainingsmetriken für eine vollständige Reproduzierbarkeit der Experimente, eine interaktive Benutzeroberfläche für eine optimierte Datenanalyse und effiziente Modellverwaltungstools für den Einsatz in verschiedenen Umgebungen.

YOLOv8 Ausbildung mit Weights & Biases

Mit Weights & Biases kannst du deinen YOLOv8 Schulungsprozess effizienter gestalten und automatisieren.

Installation

Um die benötigten Pakete zu installieren, führe sie aus:

Installation

# Install the required packages for YOLOv8 and Weights & Biases
pip install --upgrade ultralytics==8.0.186 wandb

Ausführliche Anweisungen und bewährte Verfahren für den Installationsprozess findest du in unserem YOLOv8 Installationsleitfaden. Wenn du bei der Installation der erforderlichen Pakete für YOLOv8 auf Schwierigkeiten stößt, findest du in unserem Leitfaden für häufige Probleme Lösungen und Tipps.

Konfigurieren von Weights & Biases

Nachdem du die notwendigen Pakete installiert hast, musst du im nächsten Schritt deine Weights & Biases Umgebung einrichten. Dazu gehört die Einrichtung eines Weights & Biases Kontos und die Beschaffung des notwendigen API-Schlüssels für eine reibungslose Verbindung zwischen deiner Entwicklungsumgebung und der W&B Plattform.

Beginne damit, die Umgebung Weights & Biases in deinem Arbeitsbereich zu initialisieren. Dazu führst du den folgenden Befehl aus und befolgst die angezeigten Anweisungen.

Erste SDK-Einrichtung

# Initialize your Weights & Biases environment
import wandb
wandb.login()

Rufe die Autorisierungsseite Weights & Biases auf, um deinen API-Schlüssel zu erstellen und abzurufen. Verwende diesen Schlüssel, um deine Umgebung bei W&B zu authentifizieren.

Verwendung: Ausbildung YOLOv8 mit Weights & Biases

Bevor du dich mit der Gebrauchsanweisung für das YOLOv8 Modelltraining mit Weights & Biases beschäftigst, solltest du dir die verschiedenen YOLOv8 Modelle ansehen, die von Ultralytics angeboten werden. Das wird dir helfen, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.

Verwendung: Ausbildung YOLOv8 mit Weights & Biases

import wandb
from ultralytics import YOLO
from wandb.integration.ultralytics import add_wandb_callback

# Step 1: Initialize a Weights & Biases run
wandb.init(project="ultralytics", job_type="training")

# Step 2: Define the YOLOv8 Model and Dataset
model_name = "yolov8n"
dataset_name = "coco8.yaml"
model = YOLO(f"{model_name}.pt")

# Step 3: Add W&B Callback for Ultralytics
add_wandb_callback(model, enable_model_checkpointing=True)

# Step 4: Train and Fine-Tune the Model
model.train(project="ultralytics", data=dataset_name, epochs=5, imgsz=640)

# Step 5: Validate the Model
model.val()

# Step 6: Perform Inference and Log Results
model(["path/to/image1", "path/to/image2"])

# Step 7: Finalize the W&B Run
wandb.finish()

Den Kodex verstehen

Lass uns die Schritte verstehen, die im obigen Code-Schnipsel gezeigt werden.

  • Schritt 1: Initialisiere einen Weights & Biases Lauf: Beginne damit, einen Weights & Biases Lauf zu initialisieren, indem du den Projektnamen und den Jobtyp angibst. Dieser Lauf wird die Trainings- und Validierungsprozesse deines Modells verfolgen und verwalten.

  • Schritt 2: Definiere das YOLOv8 Modell und den Datensatz: Gib die Modellvariante und den Datensatz an, den du verwenden möchtest. Das Modell YOLO wird dann mit der angegebenen Modelldatei initialisiert.

  • Schritt 3: Füge Weights & Biases Callback für Ultralytics hinzu: Dieser Schritt ist entscheidend, da er die automatische Protokollierung der Trainingsmetriken und Validierungsergebnisse auf Weights & Biases ermöglicht und so einen detaillierten Einblick in die Leistung des Modells bietet.

  • Schritt 4: Trainieren und Feinabstimmung des Modells: Beginne mit dem Training des Modells mit dem angegebenen Datensatz, der Anzahl der Epochen und der Bildgröße. Der Trainingsprozess umfasst die Aufzeichnung von Kennzahlen und Vorhersagen am Ende jeder Epoche und bietet einen umfassenden Überblick über den Lernfortschritt des Modells.

  • Schritt 5: Validierung des Modells: Nach dem Training wird das Modell validiert. Dieser Schritt ist entscheidend, um die Leistung des Modells bei ungesehenen Daten zu beurteilen und seine Verallgemeinerbarkeit sicherzustellen.

  • Schritt 6: Inferenz durchführen und Ergebnisse protokollieren: Das Modell führt Vorhersagen für die angegebenen Bilder durch. Diese Vorhersagen werden zusammen mit visuellen Überlagerungen und Erkenntnissen automatisch in einer W&B-Tabelle zur interaktiven Erkundung protokolliert.

  • Schritt 7: Schließe den W&B-Lauf ab: Dieser Schritt markiert das Ende der Datenerfassung und speichert den Endzustand des Trainings- und Validierungsprozesses deines Modells im W&B-Dashboard.

Die Ausgabe verstehen

Wenn du das obige Code-Snippet ausführst, kannst du die folgenden wichtigen Ergebnisse erwarten:

  • Die Einrichtung eines neuen Laufs mit seiner eindeutigen ID, die den Beginn des Trainingsprozesses anzeigt.
  • Eine prägnante Zusammenfassung der Struktur des Modells, einschließlich der Anzahl der Schichten und Parameter.
  • Regelmäßige Aktualisierungen wichtiger Metriken wie Box Loss, Cls Loss, Dfl Loss, Precision, Recall und mAP Scores während jeder Trainingsepoche.
  • Am Ende des Trainings werden detaillierte Metriken angezeigt, darunter die Inferenzgeschwindigkeit des Modells und die Gesamtgenauigkeit.
  • Links zum Weights & Biases Dashboard für eine detaillierte Analyse und Visualisierung des Trainingsprozesses sowie Informationen zu den Speicherorten der lokalen Logdateien.

Anzeigen des Weights & Biases Dashboards

Nachdem du das Code Snippet ausgeführt hast, kannst du das Weights & Biases (W&B) Dashboard über den Link in der Ausgabe aufrufen. Dieses Dashboard bietet einen umfassenden Überblick über den Trainingsprozess deines Modells mit YOLOv8.

Die wichtigsten Funktionen des Weights & Biases Dashboards

  • Verfolgung der Metriken in Echtzeit: Beobachte Metriken wie Verlust, Genauigkeit und Validierungsergebnisse, wie sie sich während des Trainings entwickeln, und erhalte sofortige Einblicke für die Modelloptimierung.

  • Hyperparameter-Optimierung: Weights & Biases hilft bei der Feinabstimmung kritischer Parameter wie Lernrate, Stapelgröße und mehr, um die Leistung von YOLOv8 zu verbessern.

  • Vergleichende Analyse: Die Plattform ermöglicht es, verschiedene Trainingsläufe nebeneinander zu vergleichen, was wichtig ist, um die Auswirkungen verschiedener Modellkonfigurationen zu bewerten.

  • Visualisierung des Trainingsfortschritts: Grafische Darstellungen der wichtigsten Metriken ermöglichen ein intuitives Verständnis der Leistung des Modells über Epochen hinweg.

  • Ressourcenüberwachung: Verfolge die CPU-, GPU- und Speichernutzung, um die Effizienz des Trainingsprozesses zu optimieren.

  • Verwaltung von Modellartefakten: Greife auf Modell-Checkpoints zu und tausche sie aus, um die Bereitstellung und Zusammenarbeit zu erleichtern.

  • Anzeige der Vorhersageergebnisse mit Bild-Overlay: Visualisiere die Vorhersageergebnisse auf Bildern mit interaktiven Überlagerungen in Weights & Biases und erhalte einen klaren und detaillierten Überblick über die Leistung des Modells auf realen Daten. Ausführlichere Informationen zu den Bildüberlagerungsfunktionen von Weights & Biasesfindest du unter diesem Link.

Mit diesen Funktionen kannst du die Ausbildung deines YOLOv8 Modells effektiv verfolgen, analysieren und optimieren und so die bestmögliche Leistung und Effizienz sicherstellen.

Zusammenfassung

Dieser Leitfaden half dir, die Integration von Ultralytics' YOLOv8 mit Weights & Biases zu erkunden. Er veranschaulicht die Fähigkeit dieser Integration, die Ergebnisse des Modelltrainings und der Vorhersage effizient zu verfolgen und zu visualisieren.

Weitere Einzelheiten zur Verwendung findest du in der offiziellen Dokumentation vonWeights & Biases.

Schau dir auch den Integrationsleitfaden aufUltralytics an, um mehr über verschiedene spannende Integrationen zu erfahren.



Erstellt 2023-12-28, Aktualisiert 2024-05-18
Autoren: glenn-jocher (5), abirami-vina (1)

Kommentare