Creare un esempio minimo riproducibile per le segnalazioni di bug nei repository di Ultralytics YOLO
Quando si invia una segnalazione di bug per 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 passaggio per la creazione di un MRE consiste nell'isolare il problema. Rimuovere il codice non necessario o le dipendenze che non sono direttamente correlate al problema. Concentrati sulla parte specifica del codice che causa il problema ed elimina tutte le sezioni irrilevanti.
2. Utilizzare modelli e dataset pubblici
Quando si crea un MRE, utilizzare modelli e set di dati disponibili pubblicamente per riprodurre il problema. Ad esempio, utilizzare il metodo yolov8n.pt
modello e il coco8.yaml
Dataset. Ciò garantisce che i manutentori e i collaboratori possano facilmente eseguire l'esempio e indagare sul problema senza bisogno di accedere a dati proprietari o modelli personalizzati.
3. Includere tutte le dipendenze necessarie
Assicurarsi che tutte le dipendenze necessarie siano incluse nell'MRE. Se il codice si basa su librerie esterne, specificare i pacchetti necessari e le relative versioni. Idealmente, elencare le dipendenze nella segnalazione di bug usando yolo checks
Se si dispone di ultralytics
installato o pip list
per altri strumenti.
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
Formattare correttamente il codice utilizzando i blocchi di codice nella descrizione del problema. In questo modo è più facile per gli altri utenti leggere e comprendere il codice. In GitHub è possibile creare un blocco di codice eseguendo il wrapping del codice con tripli apici inversi (''') e specificando il linguaggio:
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 l'inferenza su un'immagine a 0 canali, viene visualizzato 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.3.0
ultralytics==8.2.0
In questo esempio, l'MRE illustra il problema con una quantità minima di codice, usa un modello pubblico ("yolov8n.pt"
), include tutte le dipendenze necessarie e fornisce una descrizione chiara 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.
DOMANDE FREQUENTI
Come posso creare un esempio minimo riproducibile (MRE) efficace per le segnalazioni di bug nei repository di Ultralytics YOLO ?
Per creare un esempio minimo riproducibile (MRE) efficace per le segnalazioni di bug nei repository di Ultralytics YOLO , segui questi passaggi:
- Isolare il problema: Rimuovi il codice o le dipendenze che non sono direttamente collegate al problema.
- Utilizzare modelli e dataset pubblici: Utilizza risorse pubbliche come
yolov8n.pt
ecoco8.yaml
per una più facile riproducibilità. - Includere tutte le dipendenze necessarie: Specifica i pacchetti richiesti e le loro versioni. Puoi elencare le dipendenze utilizzando
yolo checks
Se si dispone diultralytics
installato opip list
. - Scrivi una chiara descrizione del problema: Spiega il comportamento atteso e quello effettivo, includendo eventuali messaggi di errore o log.
- Formatta il tuo codice in modo corretto: Usa i blocchi di codice per formattare il codice e renderlo più leggibile.
- Testa il tuo MRE: Assicurati che il tuo MRE riproduca il problema senza modifiche.
Per una guida dettagliata, vedi Creare un esempio minimo riproducibile.
Perché dovrei utilizzare modelli e set di dati disponibili pubblicamente nel mio MRE per le segnalazioni di bug di Ultralytics YOLO ?
L'uso di modelli e set di dati disponibili pubblicamente nel tuo MRE assicura che i manutentori possano eseguire facilmente il tuo esempio senza dover accedere a dati proprietari. Ciò consente di risolvere i problemi in modo più rapido ed efficiente. Ad esempio, l'utilizzo dell'opzione yolov8n.pt
modello e coco8.yaml
aiuta a standardizzare e semplificare il processo di debug. Per saperne di più sui modelli e i set di dati pubblici, consulta la sezione Utilizzare modelli e dataset pubblici sezione.
Quali informazioni devo includere nella mia segnalazione di bug per Ultralytics YOLO ?
Una segnalazione di bug completa per Ultralytics YOLO dovrebbe includere:
- Descrizione chiara: Spiega il problema, il comportamento atteso e quello effettivo.
- Messaggi di errore: Includi tutti i messaggi di errore o i log rilevanti.
- Dipendenze: Elenca le dipendenze necessarie e le loro versioni.
- MRE: Fornire un esempio minimo riproducibile.
- Passi per la riproduzione: Illustra i passaggi necessari per riprodurre il problema.
Per una lista di controllo completa, consulta la sezione Scrivi una chiara descrizione del problema.
Come posso formattare correttamente il mio codice quando invio una segnalazione di bug su GitHub?
Per formattare correttamente il tuo codice quando invii una segnalazione di bug su GitHub:
- Usa tripli backtick (```) per creare blocchi di codice.
- Specifica il linguaggio di programmazione per l'evidenziazione della sintassi, ad esempio, ```python.
- Assicurati che il codice sia indentato correttamente per garantire la leggibilità.
Esempio:
Per ulteriori suggerimenti sulla formattazione del codice, consulta Formattare il codice in modo corretto.
Quali sono gli errori più comuni da controllare prima di inviare il mio MRE per una segnalazione di bug?
Prima di inviare il tuo MRE, assicurati di:
- Verifica che il problema sia riproducibile.
- Assicurati che tutte le dipendenze siano elencate e corrette.
- Rimuovi il codice non necessario.
- Testa il MRE per assicurarti che riproduca il problema senza modifiche.
Per una lista di controllo dettagliata, visita la sezione Prova il tuo MRE.