Overslaan naar inhoud

Een minimaal reproduceerbaar voorbeeld maken voor bugrapporten in Ultralytics YOLO Repositories

Bij het indienen van een bugrapport voor Ultralytics YOLO repositories, is het essentieel om een minimaal reproduceerbaar voorbeeld (MRE) te geven. Een MRE is een klein, zelfstandig stukje code dat het probleem demonstreert dat je ervaart. Het leveren van een MRE helpt onderhouders en medewerkers om het probleem te begrijpen en efficiƫnter te werken aan een oplossing. Deze handleiding legt uit hoe je een MRE maakt bij het indienen van bugrapporten bij Ultralytics YOLO repositories.

1. Isoleer het probleem

De eerste stap bij het maken van een MRE is het isoleren van het probleem. Verwijder alle onnodige code of afhankelijkheden die niet direct verband houden met het probleem. Concentreer u op het specifieke deel van de code dat het probleem veroorzaakt en elimineer alle irrelevante secties.

2. Openbare modellen en datasets gebruiken

Gebruik bij het maken van een MRE openbaar beschikbare modellen en datasets om het probleem te reproduceren. Gebruik bijvoorbeeld de knop yolov8n.pt model en de coco8.yaml Dataset. Dit zorgt ervoor dat de onderhouders en bijdragers uw voorbeeld gemakkelijk kunnen uitvoeren en het probleem kunnen onderzoeken zonder toegang tot bedrijfseigen gegevens of aangepaste modellen.

3. Neem alle noodzakelijke afhankelijkheden op

Zorg ervoor dat alle noodzakelijke afhankelijkheden zijn opgenomen in uw MRE. Als uw code afhankelijk is van externe bibliotheken, geeft u de vereiste pakketten en hun versies op. In het ideale geval maakt u een lijst van de afhankelijkheden in uw bugrapport met behulp van yolo checks Als je ultralytics geĆÆnstalleerd of pip list voor andere gereedschappen.

4. Schrijf een duidelijke beschrijving van het probleem

Geef een duidelijke en beknopte beschrijving van het probleem dat je ondervindt. Leg uit wat het verwachte gedrag is en wat het werkelijke gedrag is. Voeg indien van toepassing relevante foutmeldingen of logboeken toe.

5. Formatteer je code goed

Maak uw code op de juiste manier op met behulp van codeblokken in de probleembeschrijving. Dit maakt het voor anderen gemakkelijker om uw code te lezen en te begrijpen. In GitHub kunt u een codeblok maken door uw code te omwikkelen met drievoudige backticks (''') en de taal op te geven:

```python
# Your Python code goes here
```

6. Test je MRE

Test je MRE voordat je hem instuurt om er zeker van te zijn dat hij het probleem nauwkeurig reproduceert. Zorg ervoor dat anderen je voorbeeld zonder problemen of aanpassingen kunnen uitvoeren.

Voorbeeld van een MRE

Hier is een voorbeeld van een MRE voor een hypothetisch bugrapport:

Bug beschrijving:

Bij het uitvoeren van inferentie op een 0-kanaals afbeelding, krijg ik een foutmelding met betrekking tot de afmetingen van de invoer tensor.

MRE:

import torch

from ultralytics import YOLO

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

# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)

# Run the model
results = model(image)

Foutmelding:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Afhankelijkheden:

  • torch==2.3.0
  • ultralytics==8.2.0

In dit voorbeeld demonstreert de MRE het probleem met een minimale hoeveelheid code, maakt gebruik van een openbaar model ("yolov8n.pt"), bevat alle benodigde afhankelijkheden en geeft een duidelijke beschrijving van het probleem samen met de foutmelding.

Door deze richtlijnen te volgen, help je de beheerders en bijdragers van Ultralytics YOLO repositories om je probleem te begrijpen en efficiƫnter op te lossen.

FAQ

Hoe maak ik een effectief Minimaal Reproduceerbaar Voorbeeld (MRE) voor bugrapporten in Ultralytics YOLO repositories?

Volg deze stappen om een effectief Minimum Reproduceerbaar Voorbeeld (MRE) te maken voor bugrapporten in Ultralytics YOLO repositories:

  1. Isoleer het probleem: Verwijder alle code of afhankelijkheden die niet direct gerelateerd zijn aan het probleem.
  2. Openbare modellen en datasets gebruiken: Gebruik openbare middelen zoals yolov8n.pt en coco8.yaml voor eenvoudigere reproduceerbaarheid.
  3. Neem alle noodzakelijke afhankelijkheden op: Geef de benodigde pakketten en hun versies op. Je kunt afhankelijkheden opsommen met yolo checks Als je ultralytics geĆÆnstalleerd of pip list.
  4. Schrijf een duidelijke beschrijving van het probleem: Leg het verwachte en werkelijke gedrag uit, inclusief eventuele foutmeldingen of logboeken.
  5. Formatteer je code goed: Gebruik codeblokken om je code op te maken, zodat deze makkelijker te lezen is.
  6. Test je MRE: Zorg ervoor dat je MRE het probleem reproduceert zonder wijzigingen.

Voor een gedetailleerde handleiding, zie Een minimaal reproduceerbaar voorbeeld maken.

Waarom zou ik openbaar beschikbare modellen en datasets gebruiken in mijn MRE voor Ultralytics YOLO bugrapporten?

Het gebruik van openbaar beschikbare modellen en datasets in je MRE zorgt ervoor dat beheerders gemakkelijk je voorbeeld kunnen uitvoeren zonder toegang te hoeven hebben tot bedrijfseigen gegevens. Hierdoor kunnen problemen sneller en efficiƫnter worden opgelost. Als je bijvoorbeeld de yolov8n.pt model en coco8.yaml dataset helpt bij het standaardiseren en vereenvoudigen van het foutopsporingsproces. Meer informatie over openbare modellen en datasets in de Openbare modellen en datasets gebruiken sectie.

Welke informatie moet ik opnemen in mijn bugrapport voor Ultralytics YOLO ?

Een uitgebreid bugrapport voor Ultralytics YOLO moet het volgende bevatten:

  • Duidelijke beschrijving: Leg het probleem, het verwachte gedrag en het werkelijke gedrag uit.
  • Foutmeldingen: Neem alle relevante foutmeldingen of logboeken op.
  • Afhankelijkheden: Lijst met vereiste afhankelijkheden en hun versies.
  • MRE: Geef een minimaal reproduceerbaar voorbeeld.
  • Stappen om te reproduceren: Schets de stappen die nodig zijn om het probleem te reproduceren.

Raadpleeg het gedeelte Schrijf een duidelijke beschrijving van het probleem voor een volledige checklist.

Hoe kan ik mijn code goed formatteren als ik een bugrapport indien op GitHub?

Om je code goed te formatteren als je een bugrapport indient op GitHub:

  • Gebruik drievoudige backticks (```) om codeblokken te maken.
  • Geef de programmeertaal op voor syntax highlighting, bijvoorbeeld ```python.
  • Zorg ervoor dat je code correct is ingesprongen voor de leesbaarheid.

Voorbeeld:

```python
# Your Python code goes here
```

Zie Je code goed opmaken voor meer tips over het opmaken van codes.

Wat zijn veelvoorkomende fouten die je moet controleren voordat je mijn MRE indient voor een bugrapport?

Zorg ervoor dat je voordat je je MRE indient:

  • Controleer of het probleem reproduceerbaar is.
  • Zorg ervoor dat alle afhankelijkheden worden vermeld en correct zijn.
  • Verwijder overbodige code.
  • Test de MRE om er zeker van te zijn dat deze het probleem reproduceert zonder wijzigingen.

Ga voor een gedetailleerde checklist naar Test je MRE.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (4), IvorZhu331 (1)

Reacties