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 gids toont Ultralytics YOLOv8 Integratie met Weights & Biases' voor het verbeteren van het bijhouden van experimenten, het controleren van modellen en het visualiseren van modelprestaties. Het bevat ook instructies voor het opzetten van de integratie, training, fine-tuning en het visualiseren 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 wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

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

# Load a YOLO model
model = YOLO("yolov8n.pt")

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

# Train and Fine-Tune the Model
model.train(project="ultralytics", data="coco8.yaml", epochs=5, imgsz=640)

# Validate the Model
model.val()

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

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

De code begrijpen

Laten we eens kijken naar de stappen die worden weergegeven in het bovenstaande fragment van de gebruikscode.

  • 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 metrieken zoals verlies, nauwkeurigheid en validatiescores terwijl ze zich ontwikkelen tijdens de training, zodat je direct inzicht hebt in de afstelling van het model. Bekijk hoe experimenten worden bijgehouden met Weights & Biases.

  • 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. Bekijk hoe Weights & Biases je helpt bij het visualiseren van validatieresultaten.

  • Bewaking van bronnen: Houd 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 Weights & Biases' image overlay mogelijkheden op deze link. Kijk hoe Weights & Biases' image overlays helpt bij het visualiseren van model conclusies.

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 gids heeft je geholpen bij het verkennen Ultralytics' YOLOv8 Integratie met Weights & Biases. Het illustreert het vermogen van deze integratie om modeltrainings- 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.

FAQ

Hoe installeer ik de benodigde pakketten voor YOLOv8 en Weights & Biases?

Om de benodigde pakketten voor YOLOv8 en Weights & Biases te installeren, open je je commandoregelinterface en voer je uit:

pip install --upgrade ultralytics==8.0.186 wandb

Raadpleeg voor meer informatie over de installatiestappen onze YOLOv8 Installatiegids. Als je problemen tegenkomt, raadpleeg dan de gids Algemene problemen voor tips om problemen op te lossen.

Wat zijn de voordelen van de integratie van Ultralytics YOLOv8 met Weights & Biases?

De integratie van Ultralytics YOLOv8 met Weights & Biases biedt verschillende voordelen, waaronder:

  • Metriek bijhouden in real time: Observeer metrische veranderingen tijdens de training voor onmiddellijke inzichten.
  • Hyperparameter optimalisatie: Verbeter de prestaties van het model door de leersnelheid, de batchgrootte, enz. fijn af te stellen.
  • Vergelijkende analyse: Zij-aan-zij vergelijking van verschillende trainingsruns.
  • Bewaking van bronnen: Houd CPU, GPU en geheugengebruik bij.
  • Beheer van modelartefacten: Eenvoudige toegang tot en delen van modelcheckpoints.

Bekijk deze functies in detail in het gedeelte Weights & Biases Dashboard hierboven.

Hoe kan ik Weights & Biases configureren voor YOLOv8 training?

Volg deze stappen om Weights & Biases te configureren voor YOLOv8 training:

  1. Voer het commando uit om Weights & Biases te initialiseren:
    import wandb
    wandb.login()
    
  2. Haal je API-sleutel op van de website Weights & Biases .
  3. Gebruik de API-sleutel om je ontwikkelomgeving te verifiƫren.

Gedetailleerde instellingsinstructies kun je vinden in het gedeelte Weights & Biases configureren hierboven.

Hoe train ik een YOLOv8 model met Weights & Biases?

Gebruik voor het trainen van een YOLOv8 model met Weights & Biases de volgende stappen in een Python script:

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

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

# Load a YOLO model
model = YOLO("yolov8n.pt")

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

# Train and Fine-Tune the Model
model.train(project="ultralytics", data="coco8.yaml", epochs=5, imgsz=640)

# Validate the Model
model.val()

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

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

Dit script initialiseert Weights & Biases, stelt het model in, traint het en logt de resultaten. Ga voor meer details naar het gedeelte Gebruik hierboven.

Waarom zou ik Ultralytics YOLOv8 met Weights & Biases gebruiken in plaats van andere platforms?

Ultralytics YOLOv8 geĆÆntegreerd met Weights & Biases biedt verschillende unieke voordelen:

  • Hoge efficiĆ«ntie: Real-time bijhouden van trainingsgegevens en optimalisatie van prestaties.
  • Schaalbaarheid: Beheer eenvoudig grootschalige trainingstaken met robuuste tools voor resourcebewaking en -gebruik.
  • Interactiviteit: Een gebruiksvriendelijke interactieve UI voor datavisualisatie en modelbeheer.
  • Community en ondersteuning: Sterke integratiedocumentatie en ondersteuning van de community met flexibele aanpassings- en verbeteropties.

Voor vergelijkingen met andere platforms zoals Comet en ClearML, zie Ultralytics integraties.



Aangemaakt 2023-12-28, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (10), ambitious-octopus (1), IvorZhu331 (1), abirami-vina (1)

Reacties