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.

This guide showcases Ultralytics YOLOv8 integration with Weights & Biases' for enhanced experiment tracking, model-checkpointing, and visualization of model performance. It also includes instructions for setting up the integration, training, fine-tuning, and visualizing results using Weights & Biases' interactive features.

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 wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

# 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

Let's understand the steps showcased in the usage code snippet above.

  • 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.
  • A concise summary of the model's structure, including the number of layers and parameters.
  • 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.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/TB76U9O"><a href="//imgur.com/D6NVnmN">Take a look at how the experiments are tracked using Weights & Biases.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • 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.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/kU5h7W4" data-context="false" ><a href="//imgur.com/a/kU5h7W4">Take a look at how Weights & Biases helps you visualize validation results.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • 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.

  • Viewing Inference Results with Image Overlay: Visualize the prediction results on images using interactive overlays in Weights & Biases, providing a clear and detailed view of model performance on real-world data. For more detailed information on Weights & Biases' image overlay capabilities, check out this link.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/UTSiufs" data-context="false" ><a href="//imgur.com/a/UTSiufs">Take a look at how Weights & Biases' image overlays helps visualize model inferences.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    

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

This guide helped you explore Ultralytics' YOLOv8 integration with Weights & Biases. It illustrates the ability of this integration to efficiently track and visualize model training and prediction results.

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.



Created 2023-12-28, Updated 2024-06-10
Authors: glenn-jocher (8), IvorZhu331 (1), abirami-vina (1)

Kommentare