Vai al contenuto

Creazione di un esempio minimo riproducibile per le segnalazioni di bug

Quando si invia 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 manutentori 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 si inviano segnalazioni di bug ai repository Ultralytics YOLO.

1. Isolare il problema

Il primo passo nella creazione di 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 qualsiasi sezione irrilevante.

2. Usa modelli e set di dati pubblici

Quando crei un MRE, utilizza modelli e dataset disponibili pubblicamente per riprodurre il problema. Ad esempio, usa il yolov8n.pt model e il coco8.yaml dataset. Questo assicura che i manutentori e i collaboratori possano facilmente eseguire il tuo esempio e investigare il problema senza la necessità di accedere a dati proprietari o modelli personalizzati.

3. Includi 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 nel tuo rapporto di bug utilizzando yolo checks se hai ultralytics installato o 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 il comportamento effettivo che stai riscontrando. Se applicabile, includi eventuali messaggi di errore o log pertinenti.

5. Formatta correttamente il tuo codice

Formatta correttamente il tuo codice usando blocchi di codice nella descrizione del problema. Questo rende più facile per gli altri leggere e capire il tuo codice. In GitHub, puoi creare un blocco di codice racchiudendo il tuo codice tra tre backtick (```) e specificando il linguaggio:

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

6. Verifica 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 a 0 canali, ricevo un errore relativo alle dimensioni del tensor di input.

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:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Dipendenze:

  • torch==2.3.0
  • ultralytics==8.2.0

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 Ultralytics YOLO a comprendere e risolvere il tuo problema in modo più efficiente.

FAQ

Come posso creare un Esempio Minimo Riproducibile (MRE) efficace per le segnalazioni di bug nei repository Ultralytics YOLO?

Per creare un Minimum Reproducible Example (MRE) efficace per le segnalazioni di bug nei repository Ultralytics YOLO, segui questi passaggi:

  1. Isola il Problema: Rimuovi qualsiasi codice o dipendenza che non sia direttamente correlata al problema.
  2. Utilizza modelli e dataset pubblici: Utilizza risorse pubbliche come yolov8n.pt e coco8.yaml per una maggiore riproducibilità.
  3. Includi tutte le dipendenze necessarie: Specifica i pacchetti richiesti e le loro versioni. Puoi elencare le dipendenze usando yolo checks se hai ultralytics installato o 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 tuo codice: Utilizza blocchi di codice per formattare il tuo codice, rendendolo più facile da leggere.
  6. Verifica del tuo MRE: Assicurati che il tuo MRE riproduca il problema senza modifiche.

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

Perché dovrei usare modelli e dataset disponibili pubblicamente nel mio MRE per i report di bug di Ultralytics YOLO?

L'utilizzo di modelli e dataset disponibili pubblicamente nel tuo MRE garantisce che i manutentori possano eseguire facilmente il tuo esempio senza dover accedere a dati proprietari. Ciò consente una risoluzione dei problemi più rapida ed efficiente. Ad esempio, l'utilizzo del yolov8n.pt model e coco8.yaml dataset aiuta a standardizzare e semplificare il processo di debug. Scopri di più sui modelli e dataset pubblici nella Utilizza modelli e dataset pubblici sezione.

Quali informazioni devo includere nella mia segnalazione di bug per Ultralytics YOLO?

Un rapporto completo sui bug per Ultralytics YOLO dovrebbe includere:

  • Descrizione chiara: Spiega il problema, il comportamento previsto e il comportamento effettivo.
  • Messaggi di errore: Includere eventuali messaggi di errore o log rilevanti.
  • Dipendenze: Elenca le dipendenze richieste e le relative versioni.
  • MRE: Fornire un esempio minimo riproducibile.
  • Passaggi per Riprodurre: Delinea i passaggi necessari per riprodurre il problema.

Per una checklist completa, consulta la sezione Scrivi una descrizione chiara 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:

  • Utilizza tre apici inversi (```) per creare blocchi di codice.
  • Specificare il linguaggio di programmazione per l'evidenziazione della sintassi, ad esempio ```python.
  • Assicurati che il tuo codice sia indentato correttamente per una migliore leggibilità.

Esempio:

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

Per ulteriori suggerimenti sulla formattazione del codice, consultare Format Your Code Properly.

Quali sono alcuni errori comuni da verificare 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.
  • Assicurati che tutte le dipendenze siano elencate e corrette.
  • Rimuovi qualsiasi codice non necessario.
  • Testare l'MRE per assicurarsi che riproduca il problema senza modifiche.

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



📅 Creata 7 mesi fa ✏️ Aggiornata 4 mesi fa

Commenti