Ultralytics YOLO27:
Get Started

Creare 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 frammento di codice piccolo e autonomo che mostra il problema riscontrato. Fornire un MRE aiuta i responsabili della manutenzione e i contributori a comprendere il problema e a lavorare più efficacemente 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 il codice o le dipendenze non direttamente correlati al problema. Concentrati sulla parte specifica del codice che causa il problema ed elimina le sezioni non pertinenti.

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 responsabili della manutenzione e i contributori possono eseguire facilmente il tuo esempio e analizzare il problema senza dover accedere a dati proprietari o a modelli personalizzati.

3. Includi tutte le dipendenze necessarie#

Assicurati che il tuo MRE includa tutte le dipendenze necessarie. Se il codice si basa su 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. Descrivi il problema in modo chiaro#

Descrivi il problema riscontrato in modo chiaro e conciso. Spiega il comportamento previsto e quello effettivo. Se pertinente, includi eventuali messaggi di errore o log rilevanti.

5. Formatta correttamente il codice#

Formatta correttamente il codice usando blocchi di codice nella descrizione del problema. Così sarà più facile per gli altri leggere e comprendere il codice. Su GitHub, puoi creare un blocco di codice racchiudendo il codice tra tre accenti gravi (```) e specificando il linguaggio:

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

6. Verifica il tuo MRE#

Prima di inviare il tuo MRE, verificalo per assicurarti che riproduca fedelmente il problema. Assicurati che gli altri possano eseguire il tuo esempio senza problemi né modifiche.

Esempio di 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

# Carica il modello
model = YOLO("yolo26n.pt")

# Carica un'immagine con 0 canali
image = torch.rand(1, 0, 640, 640)

# Esegui il modello
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 mostra 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 indicazioni, aiuterai i responsabili della manutenzione e i contributori dei repository Ultralytics YOLO a comprendere e risolvere il problema in modo più efficiente.

Domande frequenti#

  • 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 il codice o le dipendenze non direttamente correlati al problema.
    2. Usa modelli e dataset pubblici: usa risorse pubbliche come yolo26n.pt e coco8.yaml per rendere più semplice 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. Descrivi il problema in modo chiaro: spiega il comportamento previsto e quello effettivo, includendo eventuali messaggi di errore o log.
    5. Formatta correttamente il codice: usa i blocchi di codice per formattare il codice e renderlo più facile da leggere.
    6. Verifica il tuo MRE: assicurati che il tuo MRE riproduca il problema senza modifiche.

    Per una guida dettagliata, consulta Creare un esempio minimo riproducibile.

  • Usare modelli e dataset disponibili pubblicamente nel tuo MRE permette ai responsabili della manutenzione di eseguire facilmente il tuo esempio senza dover accedere a dati proprietari. Questo consente di risolvere i problemi in modo più rapido 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 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 Descrivi il problema in modo chiaro.

  • Per formattare correttamente il codice quando invii una segnalazione di bug su GitHub:

    • Usa tre accenti gravi (```) per creare blocchi di codice.
    • Specifica il linguaggio di programmazione per evidenziare la sintassi, ad esempio ```python.
    • Assicurati che il codice sia indentato correttamente per facilitarne la lettura.

    Esempio:

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

    Per altri 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 il codice non necessario.
    • Verificare che il MRE riproduca il problema senza modifiche.

    Per una checklist dettagliata, consulta la sezione Verifica il tuo MRE.

Commenti