Ultralytics YOLO27:

Creazione 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 è una piccola porzione di codice autonoma che dimostra il problema che stai riscontrando. Fornire un MRE aiuta i maintainer e i contributori a comprendere il problema e a lavorare più efficientemente a una soluzione. Questa guida spiega come creare un MRE quando invii segnalazioni di bug per i repository Ultralytics YOLO.

1. Isola il problema#

Il primo passaggio per creare un MRE consiste nell'isolare il problema. Rimuovi qualsiasi codice o dipendenza non direttamente correlati al problema. Concentrati sulla parte specifica del codice che causa il problema ed elimina tutte le sezioni irrilevanti.

2. Usa 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. In questo modo, i maintainer e i contributori possono eseguire facilmente il tuo esempio e analizzare il problema senza dover accedere a dati proprietari o modelli personalizzati.

3. Includi tutte le dipendenze necessarie#

Assicurati che il tuo MRE includa tutte le dipendenze necessarie. Se il tuo codice dipende da librerie esterne, specifica i pacchetti richiesti e le relative versioni. Idealmente, elenca le dipendenze nella segnalazione di bug usando yolo checks se hai installato ultralytics oppure pip list per altri strumenti.

4. Scrivi una descrizione chiara del problema#

Fornisci una descrizione chiara e concisa del problema che stai riscontrando. Spiega il comportamento previsto e quello effettivo che stai osservando. Se applicabile, includi eventuali messaggi di errore o log pertinenti.

5. Formatta correttamente il codice#

Formatta correttamente il codice usando blocchi di codice nella descrizione del problema. Questo facilita la lettura e la comprensione del codice da parte degli altri. Su GitHub, puoi creare un blocco di codice racchiudendo il codice tra tre backtick (```) e specificando il linguaggio:

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

6. Testa 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.

Esempio di un MRE#

Ecco un esempio di MRE per una segnalazione di bug ipotetica:

Descrizione del bug:

Quando eseguo l'inferenza su un'immagine con 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.8.0
  • ultralytics==8.4.142

In questo esempio, l'MRE dimostra il problema con una quantità minima di codice, usa 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 maintainer e i contributori dei repository Ultralytics YOLO a comprendere e risolvere il problema in modo più efficiente.

FAQ#

  • Per creare un esempio minimo riproducibile (MRE) efficace per le segnalazioni di bug nei repository Ultralytics YOLO, segui questi passaggi:

    1. Isola il problema: rimuovi qualsiasi codice o dipendenza non direttamente correlati al problema.
    2. Usa modelli e dataset pubblici: utilizza risorse pubbliche come yolo26n.pt e coco8.yaml per facilitare la riproducibilità.
    3. Includi tutte le dipendenze necessarie: specifica i pacchetti richiesti e le relative versioni. Puoi elencare le dipendenze usando yolo checks se hai installato ultralytics oppure pip list.
    4. Scrivi una descrizione chiara del problema: spiega il comportamento previsto e quello effettivo, includendo eventuali messaggi di errore o log.
    5. Formatta correttamente il codice: usa blocchi di codice per formattare il codice e facilitarne la lettura.
    6. Testa il tuo MRE: assicurati che il tuo MRE riproduca il problema senza modifiche.

    Per una guida dettagliata, consulta Creazione di un esempio minimo riproducibile.

  • L'uso di modelli e dataset disponibili pubblicamente nel tuo MRE garantisce che i maintainer possano eseguire facilmente il tuo esempio senza dover accedere a dati proprietari. Questo consente di risolvere i problemi più rapidamente ed efficientemente. Ad esempio, l'uso del modello yolo26n.pt e del dataset coco8.yaml aiuta a standardizzare e semplificare il processo di debug. Scopri di più sui modelli e dataset pubblici nella sezione Usa modelli e dataset pubblici.

  • Una segnalazione di bug completa per Ultralytics YOLO dovrebbe includere:

    • Descrizione chiara: spiega il problema, il comportamento previsto e quello effettivo.
    • Messaggi di errore: includi eventuali messaggi di errore o log pertinenti.
    • Dipendenze: elenca le dipendenze richieste e le relative versioni.
    • MRE: fornisci un esempio minimo riproducibile.
    • Passaggi per riprodurre il problema: descrivi i passaggi necessari per riprodurre il problema.

    Per una checklist completa, consulta la sezione Scrivi una descrizione chiara del problema.

  • 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 codice sia indentato correttamente per facilitarne la lettura.

    Esempio:

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

    Per ulteriori suggerimenti sulla formattazione del codice, consulta Formatta correttamente il codice.

  • 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 il MRE per assicurarti che riproduca il problema senza modifiche.

    Per una checklist dettagliata, visita la sezione Testa il tuo MRE.

Commenti