Overslaan naar inhoud

Het verbeteren van YOLOv8 Experimenttracering en -visualisatie met Weights & Biases

Objectdetectiemodellen zoals Ultralytics YOLOv8 zijn een integraal onderdeel geworden van veel computer vision toepassingen. Het trainen, evalueren en inzetten van deze complexe modellen brengt echter verschillende uitdagingen met zich mee. Het bijhouden van belangrijke trainingsparameters, het vergelijken van modelvarianten, het analyseren van modelgedrag en het opsporen van problemen vereist een aanzienlijke hoeveelheid instrumentatie en experimentmanagement.

Deze handleiding toont Ultralytics YOLOv8 integratie met Weights & Biases' voor verbeterde experiment tracking, model-checkpointing en visualisatie van modelprestaties. Het bevat ook instructies voor het opzetten van de integratie, training, fijnafstelling en visualisatie van resultaten met behulp van Weights & Biases' interactieve functies.

Weights & Biases

Weights & Biases Overzicht

Weights & Biases is een geavanceerd MLOps-platform dat is ontworpen voor het volgen, visualiseren en beheren van machine-leerexperimenten. Het beschikt over automatische logging van trainingsmetriek voor volledige reproduceerbaarheid van experimenten, een interactieve UI voor gestroomlijnde gegevensanalyse en efficiënte hulpmiddelen voor modelbeheer om in te zetten in verschillende omgevingen.

YOLOv8 Training met Weights & Biases

Je kunt Weights & Biases gebruiken om je YOLOv8 trainingsproces efficiënter en geautomatiseerder te maken.

Installatie

Voer het volgende uit om de vereiste pakketten te installeren:

Installatie

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

Voor gedetailleerde instructies en best practices met betrekking tot het installatieproces kun je terecht in onze YOLOv8 Installatiegids. Als je tijdens de installatie van de vereiste pakketten voor YOLOv8 problemen tegenkomt, raadpleeg dan onze gids Veelgestelde problemen voor oplossingen en tips.

configureren Weights & Biases

Na het installeren van de benodigde pakketten is de volgende stap het opzetten van je Weights & Biases omgeving. Dit omvat het aanmaken van een Weights & Biases account en het verkrijgen van de benodigde API-sleutel voor een soepele verbinding tussen je ontwikkelomgeving en het W&B platform.

Begin met het initialiseren van de Weights & Biases omgeving in je werkruimte. Je kunt dit doen door het volgende commando uit te voeren en de instructies te volgen.

Eerste SDK-instelling

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

Navigeer naar de autorisatiepagina Weights & Biases om je API-sleutel aan te maken en op te halen. Gebruik deze sleutel om je omgeving te authenticeren bij W&B.

Gebruik: Training YOLOv8 met Weights & Biases

Voordat je je verdiept in de gebruiksaanwijzing voor YOLOv8 modeltraining met Weights & Biases, moet je eerst het aanbod van YOLOv8 modellen bekijken dat wordt aangeboden door Ultralytics. Dit zal je helpen bij het kiezen van het meest geschikte model voor jouw projectvereisten.

Gebruik: Training YOLOv8 met 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()

De code begrijpen

Laten we de stappen in het bovenstaande voorbeeld van de gebruikscode begrijpen.

  • Stap 1: Een Weights & Biases run initialiseren: Begin met het initialiseren van een Weights & Biases run, waarbij je de projectnaam en het type opdracht opgeeft. Deze run zal de trainings- en validatieprocessen van je model volgen en beheren.

  • Stap 2: Definieer het YOLOv8 model en de dataset: Specificeer de modelvariant en de dataset die je wilt gebruiken. Het model YOLO wordt dan geïnitialiseerd met het opgegeven modelbestand.

  • Stap 3: Weights & Biases Callback toevoegen voor Ultralytics: Deze stap is cruciaal omdat hiermee de trainingsmetriek en validatieresultaten automatisch geregistreerd kunnen worden op Weights & Biases, wat een gedetailleerd beeld geeft van de prestaties van het model.

  • Stap 4: Het model trainen en afstemmen: Begin met het trainen van het model met de opgegeven dataset, het aantal epochs en de afbeeldingsgrootte. Het trainingsproces omvat het loggen van metriek en voorspellingen aan het einde van elke epoch, waardoor een uitgebreid beeld ontstaat van de leervorderingen van het model.

  • Stap 5: Het model valideren: Na de training wordt het model gevalideerd. Deze stap is cruciaal om de prestaties van het model op ongeziene gegevens te beoordelen en de generaliseerbaarheid te garanderen.

  • Stap 6: Inferentie uitvoeren en resultaten loggen: Het model voert voorspellingen uit op gespecificeerde afbeeldingen. Deze voorspellingen worden, samen met visuele overlays en inzichten, automatisch vastgelegd in een W&B tabel voor interactieve verkenning.

  • Stap 7: Voltooi de W&B Run: Deze stap markeert het einde van het loggen van gegevens en slaat de definitieve staat van het trainings- en validatieproces van je model op in het W&B dashboard.

De uitvoer begrijpen

Als je het bovenstaande codefragment uitvoert, kun je de volgende resultaten verwachten:

  • Het opzetten van een nieuwe reeks met een unieke ID, die de start van het trainingsproces aangeeft.
  • Een beknopte samenvatting van de structuur van het model, inclusief het aantal lagen en parameters.
  • Regelmatige updates van belangrijke statistieken zoals box loss, cls loss, dfl loss, precision, recall en mAP scores tijdens elke trainingsepoch.
  • Aan het einde van de training worden gedetailleerde statistieken weergegeven, waaronder de inferentiesnelheid van het model en de algehele nauwkeurigheid.
  • Koppelingen naar het dashboard Weights & Biases voor diepgaande analyse en visualisatie van het trainingsproces, samen met informatie over de locaties van lokale logbestanden.

Het Weights & Biases Dashboard bekijken

Na het uitvoeren van het gebruik van het codefragment kun je het dashboard Weights & Biases (W&B) openen via de link in de uitvoer. Dit dashboard biedt een uitgebreid overzicht van het trainingsproces van je model met YOLOv8.

Belangrijkste functies van het Weights & Biases Dashboard

  • Metriek bijhouden in realtime: Bekijk statistieken zoals verlies, nauwkeurigheid en validatiescores terwijl ze zich ontwikkelen tijdens de training, zodat je direct inzicht hebt in de afstelling van het model.

  • Hyperparameteroptimalisatie: Weights & Biases helpt bij het nauwkeurig afstellen van kritieke parameters zoals leersnelheid, batchgrootte en meer, waardoor de prestaties van YOLOv8 worden verbeterd.

  • Vergelijkende analyse: Het platform maakt zij-aan-zij vergelijkingen van verschillende trainingsruns mogelijk, wat essentieel is voor het beoordelen van de invloed van verschillende modelconfiguraties.

  • Visualisatie van trainingsvoortgang: Grafische weergaven van belangrijke meetgegevens geven een intuïtief inzicht in de prestaties van het model over verschillende tijdperken.

  • Bewaking van bronnen: Houd het CPU-, GPU- en geheugengebruik bij om de efficiëntie van het trainingsproces te optimaliseren.

  • Beheer van modelartefacten: Toegang tot en delen van modelcheckpoints, voor eenvoudige implementatie en samenwerking.

  • Inferentie resultaten bekijken met Image Overlay: Visualiseer de voorspellingsresultaten op afbeeldingen met behulp van interactieve overlays in Weights & Biases, waardoor je een duidelijk en gedetailleerd beeld krijgt van de modelprestaties op echte gegevens. Kijk voor meer gedetailleerde informatie over de mogelijkheden van Weights & Biasesvoor het overlappen van afbeeldingen op deze link.

Door deze functies te gebruiken kun je de training van je YOLOv8 model effectief volgen, analyseren en optimaliseren, zodat je verzekerd bent van de best mogelijke prestaties en efficiëntie.

Samenvatting

Deze handleiding hielp je bij het verkennen van Ultralytics' YOLOv8 integratie met Weights & Biases. Het illustreert de mogelijkheid van deze integratie om modeltraining en voorspellingsresultaten efficiënt bij te houden en te visualiseren.

Ga voor meer informatie over het gebruik naar Weights & Biases' officiële documentatie.

Bekijk ook zeker de Ultralytics integratiegids pagina, voor meer informatie over verschillende spannende integraties.



Aangemaakt 2023-12-28, Bijgewerkt 2024-05-18
Auteurs: glenn-jocher (5), abirami-vina (1)

Reacties