Link to this sectionCreazione di un Esempio Minimo Riproducibile per le segnalazioni di bug#
Quando invii una segnalazione di bug per i repository Ultralytics YOLO, è essenziale fornire un Esempio Minimo Riproducibile (MRE). Un MRE è un piccolo frammento di codice autonomo che dimostra il problema che stai riscontrando. Fornire un MRE aiuta i responsabili e i collaboratori a comprendere il problema e a lavorare su una correzione in modo più efficiente. Questa guida spiega come creare un MRE quando invii segnalazioni di bug ai repository YOLO di Ultralytics.
Link to this sectionIsola il problema#
Il primo passo per creare un MRE è isolare il problema. Rimuovi qualsiasi codice o dipendenza non necessaria che non sia direttamente correlata al problema. Concentrati sulla parte specifica del codice che sta causando il problema ed elimina eventuali sezioni irrilevanti.
Link to this sectionUsa modelli e dataset pubblici#
Quando crei un MRE, usa modelli e dataset disponibili pubblicamente per riprodurre il problema. Ad esempio, usa il modello yolo26n.pt e il dataset coco8.yaml. Questo garantisce che i responsabili e i collaboratori possano eseguire facilmente il tuo esempio e indagare sul problema senza aver bisogno di accedere a dati proprietari o modelli personalizzati.
Link to this sectionIncludi tutte le dipendenze necessarie#
Assicurati che tutte le dipendenze necessarie siano incluse nel tuo MRE. Se il tuo codice si basa su librerie esterne, specifica i pacchetti richiesti e le loro versioni. Idealmente, elenca le dipendenze nella tua segnalazione di bug usando yolo checks se hai ultralytics installato, o pip list per altri strumenti.
Link to this sectionScrivi una descrizione chiara del problema#
Fornisci una descrizione chiara e concisa del problema che stai riscontrando. Spiega il comportamento previsto e quello reale che stai incontrando. Se applicabile, includi eventuali messaggi di errore o log pertinenti.
Link to this sectionFormatta il tuo codice correttamente#
Formatta il tuo codice correttamente usando blocchi di codice nella descrizione del problema. Questo rende più facile per gli altri leggere e comprendere il tuo codice. Su GitHub, puoi creare un blocco di codice racchiudendo il tuo codice tra tre backtick (```) e specificando il linguaggio:
```python
# Your Python code goes here
```Link to this sectionTesta il tuo MRE#
Prima di inviare il tuo MRE, testalo per assicurarti che riproduca accuratamente il problema. Assicurati che altri possano eseguire il tuo esempio senza problemi o modifiche.
Link to this sectionEsempio di un MRE#
Ecco un esempio di un MRE per una ipotetica segnalazione di bug:
Descrizione del bug:
Quando eseguo l'inferenza su un'immagine a 0 canali, ricevo un errore relativo alle dimensioni del tensore di input.
MRE:
import torch
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)
# Run the model
results = model(image)Messaggio di errore:
RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead
Dipendenze:
torch==2.3.0ultralytics==8.2.0
In questo esempio, l'MRE dimostra il problema con una quantità minima di codice, utilizza un modello pubblico ("yolo26n.pt"), include tutte le dipendenze necessarie e fornisce una descrizione chiara del problema insieme al messaggio di errore.
Seguendo queste linee guida, aiuterai i responsabili e i collaboratori dei repository YOLO di Ultralytics a comprendere e risolvere il tuo problema in modo più efficiente.
Link to this sectionFAQ#
Link to this sectionCome posso creare un Esempio Minimo Riproducibile (MRE) efficace per le segnalazioni di bug nei repository YOLO di Ultralytics?#
Per creare un Esempio Minimo Riproducibile (MRE) efficace per le segnalazioni di bug nei repository YOLO di Ultralytics, segui questi passaggi:
- Isola il problema: Rimuovi qualsiasi codice o dipendenza non direttamente correlata al problema.
- Usa modelli e dataset pubblici: Utilizza risorse pubbliche come
yolo26n.ptecoco8.yamlper una riproducibilità più semplice. - Includi tutte le dipendenze necessarie: Specifica i pacchetti richiesti e le loro versioni. Puoi elencare le dipendenze usando
yolo checksse haiultralyticsinstallato, opip list. - Scrivi una descrizione chiara del problema: Spiega il comportamento previsto e quello reale, includendo eventuali messaggi di errore o log.
- Formatta il tuo codice correttamente: Usa i blocchi di codice per formattare il tuo codice, rendendolo più facile da leggere.
- Testa il tuo MRE: Assicurati che il tuo MRE riproduca il problema senza modifiche.
Per una guida dettagliata, vedi Creazione di un Esempio Minimo Riproducibile.
Link to this sectionPerché dovrei usare modelli e dataset disponibili pubblicamente nel mio MRE per le segnalazioni di bug di Ultralytics YOLO?#
L'uso di modelli e dataset disponibili pubblicamente nel tuo MRE garantisce che i responsabili possano eseguire facilmente il tuo esempio senza aver bisogno di accedere a dati proprietari. Ciò consente una risoluzione dei problemi più rapida ed efficiente. Ad esempio, usare il modello yolo26n.pt e il dataset coco8.yaml aiuta a standardizzare e semplificare il processo di debug. Scopri di più sui modelli e i dataset pubblici nella sezione Usa modelli e dataset pubblici.
Link to this sectionQuali informazioni dovrei 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 previsto e il comportamento reale.
- Messaggi di errore: Includi eventuali messaggi di errore o log pertinenti.
- Dipendenze: Elenca le dipendenze richieste e le loro versioni.
- MRE: Fornisci un Esempio Minimo Riproducibile.
- Passaggi per riprodurre: Delinea i passaggi necessari per riprodurre il problema.
Per una checklist completa, fai riferimento alla sezione Scrivi una descrizione chiara del problema.
Link to this sectionCome posso formattare correttamente il mio codice quando invio una segnalazione di bug su GitHub?#
Per formattare correttamente il codice quando invii una segnalazione di bug su GitHub:
- Usa tre backtick (```) per creare blocchi di codice.
- Specifica il linguaggio di programmazione per l'evidenziazione della sintassi, ad esempio ```python.
- Assicurati che il tuo codice sia indentato correttamente per la leggibilità.
Esempio:
```python
# Your Python code goes here
```Per altri suggerimenti sulla formattazione del codice, vedi Formatta il tuo codice correttamente.
Link to this sectionQuali sono alcuni errori comuni da controllare prima di inviare il mio MRE per una segnalazione di bug?#
Prima di inviare il tuo MRE, assicurati di:
- Verificare che il problema sia riproducibile.
- Assicurarti che tutte le dipendenze siano elencate e corrette.
- Rimuovere qualsiasi codice non necessario.
- Testare l'MRE per assicurarti che riproduca il problema senza modifiche.
Per una checklist dettagliata, visita la sezione Testa il tuo MRE.