Creare un esempio minimo riproducibile per le segnalazioni di bug nei repository di Ultralytics YOLO
Quando si invia una segnalazione di bug per i repository di Ultralytics YOLO , è essenziale fornire un esempio minimo riproducibile (MRE). Un MRE è un piccolo pezzo di codice autonomo che dimostra il problema che stai riscontrando. Fornire un MRE aiuta i manutentori e i collaboratori a comprendere il problema e a lavorare alla sua risoluzione in modo più efficiente. Questa guida spiega come creare un MRE quando si inviano segnalazioni di bug ai repository Ultralytics YOLO .
1. Isolare il problema
Il primo passo per creare un MRE è isolare il problema. Ciò significa rimuovere tutto il codice non necessario o le dipendenze che non sono direttamente collegate al problema. Concentrati sulla parte specifica del codice che sta causando il problema e rimuovi tutto il codice irrilevante.
2. Utilizzare modelli e dataset pubblici
Quando crei un MRE, utilizza modelli e set di dati disponibili pubblicamente per riprodurre il problema. Ad esempio, usa il modello 'yolov8n.pt' e il dataset 'coco8.yaml'. In questo modo i manutentori e i collaboratori potranno facilmente eseguire il tuo esempio e indagare sul problema senza dover accedere a dati proprietari o a modelli personalizzati.
3. Includere tutte le dipendenze necessarie
Assicurati di includere tutte le dipendenze necessarie nel tuo MRE. Se il tuo codice si basa su librerie esterne, specifica i pacchetti necessari e le loro versioni. Idealmente, fornisci un file requirements.txt
oppure elenca le dipendenze nella tua segnalazione di bug.
4. Scrivi una chiara descrizione del problema
Fornisci una descrizione chiara e concisa del problema che stai riscontrando. Spiega il comportamento previsto e quello effettivo che stai riscontrando. Se applicabile, includi tutti i messaggi di errore o i log rilevanti.
5. Formatta il tuo codice in modo corretto
Quando invii un MRE, formatta il tuo codice in modo corretto utilizzando i blocchi di codice nella descrizione del problema. In questo modo sarà più facile per gli altri leggere e capire il tuo codice. In GitHub, puoi creare un blocco di codice avvolgendo il tuo codice con tripli backtick (```) e specificando la lingua:
6. Prova il tuo MRE
Prima di inviare il tuo MRE, testalo per assicurarti che riproduca accuratamente il problema. Assicurati che gli altri possano eseguire il tuo esempio senza problemi o modifiche.
Esempio di MRE
Ecco un esempio di MRE per un'ipotetica segnalazione di bug:
Descrizione del bug:
Quando si esegue il programma detect.py
sull'immagine campione del dataset 'coco8.yaml', ottengo un errore relativo alle dimensioni dell'input 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)
Messaggio di errore:
Dipendenze:
- torch==2.0.0
- ultralytics==8.0.90
In questo esempio, l'MRE dimostra il problema con una quantità minima di codice, utilizza un modello pubblico ('yolov8n.pt'), include tutte le dipendenze necessarie e fornisce una chiara descrizione del problema insieme al messaggio di errore.
Seguendo queste linee guida, aiuterai i manutentori e i collaboratori dei repository di Ultralytics YOLO a comprendere e risolvere il tuo problema in modo più efficiente.