Vai al contenuto

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 riscontrato. Fornire un MRE aiuta i manutentori e i collaboratori a capire il problema e a lavorare su una soluzione in modo più efficiente. Questa guida spiega come creare un MRE quando si inviano segnalazioni di bug ai repository di Ultralytics YOLO .

1. Isolare il problema

Il primo passo per creare un MRE è isolare il problema. Rimuovere il codice non necessario o le dipendenze non direttamente correlate al problema. Concentratevi sulla parte specifica del codice che causa il problema ed eliminate 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 file yolov8n.pt e il modello coco8.yaml dataset. Questo assicura che i manutentori e i collaboratori possano facilmente eseguire il vostro esempio e indagare sul problema senza dover accedere a dati proprietari o a modelli personalizzati.

3. Includere tutte le dipendenze necessarie

Assicurarsi che tutte le dipendenze necessarie siano incluse nel proprio MRE. Se il codice si basa su librerie esterne, specificare i pacchetti necessari e le loro versioni. Idealmente, elencare le dipendenze nella propria segnalazione di bug, usando il metodo yolo checks se avete ultralytics installato o pip list per altri strumenti.

4. Scrivere una chiara descrizione del problema

Fornite una descrizione chiara e concisa del problema che state riscontrando. Spiegare il comportamento previsto e quello effettivo riscontrato. Se applicabile, includere eventuali messaggi di errore o registri pertinenti.

5. Formattare correttamente il codice

Formattate correttamente il codice utilizzando blocchi di codice nella descrizione del problema. In questo modo è più facile per gli altri leggere e capire il codice. In GitHub, è possibile creare un blocco di codice avvolgendo il codice con tripli backtick (```) e specificando la lingua:

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

6. Testate il vostro MRE

Prima di inviare il vostro MRE, testatelo per assicurarvi che riproduca accuratamente il problema. Assicurarsi che gli altri possano eseguire l'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, si ottiene un errore relativo alle dimensioni dell'ingresso 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:

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, aiuterete i manutentori e i collaboratori dei repository Ultralytics YOLO a comprendere e risolvere il vostro problema in modo più efficiente.

FAQ

Come si crea 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 , seguite questi passaggi:

  1. Isolare il problema: Rimuovere il codice o le dipendenze non direttamente correlate al problema.
  2. Utilizzare modelli e dataset pubblici: Utilizzare risorse pubbliche come yolov8n.pt e coco8.yaml per una più facile riproducibilità.
  3. Includere tutte le dipendenze necessarie: Specificare i pacchetti richiesti e le loro versioni. È possibile elencare le dipendenze utilizzando yolo checks se avete ultralytics installato o pip list.
  4. Scrivere una descrizione chiara del problema: Spiegare il comportamento atteso e quello effettivo, compresi eventuali messaggi di errore o registri.
  5. Formattare correttamente il codice: Utilizzate i blocchi di codice per formattare il codice e renderlo più leggibile.
  6. Testate il vostro MRE: Assicurarsi che il proprio MRE riproduca il problema senza modifiche.

Per una guida dettagliata, vedere Creazione di 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 vostro MRE assicura che i manutentori possano eseguire facilmente il vostro esempio senza dover accedere a dati proprietari. Ciò consente di risolvere i problemi in modo più rapido ed efficiente. Ad esempio, l'uso del file 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, consultare 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: Spiegare il problema, il comportamento atteso e quello effettivo.
  • Messaggi di errore: Includere eventuali messaggi di errore o log rilevanti.
  • Dipendenze: Elenca le dipendenze necessarie e le loro versioni.
  • MRE: Fornire un esempio minimo riproducibile.
  • Passi per la riproduzione: Illustrare i passaggi necessari per riprodurre il problema.

Per una lista di controllo completa, consultare la sezione Scrivere una descrizione chiara del problema.

Come posso formattare correttamente il mio codice quando invio una segnalazione di bug su GitHub?

Per formattare correttamente il codice quando si invia una segnalazione di bug su GitHub:

  • Usare tripli backtick (```) per creare blocchi di codice.
  • Specificare il linguaggio di programmazione per l'evidenziazione della sintassi, ad esempio, ```python.
  • Assicurarsi che il codice sia indentato correttamente per garantire la leggibilità.

Esempio:

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

Per ulteriori suggerimenti sulla formattazione del codice, vedere Formattare correttamente il codice.

Quali sono gli errori più comuni da controllare prima di inviare il mio MRE per una segnalazione di bug?

Prima di inviare il vostro MRE, assicuratevi di:

  • Verificare che il problema sia riproducibile.
  • Assicurarsi che tutte le dipendenze siano elencate e corrette.
  • Rimuovere il codice non necessario.
  • Testate il MRE per assicurarvi che riproduca il problema senza modifiche.

Per una lista di controllo dettagliata, visitate la sezione Test your MRE.

📅C reato 1 anno fa ✏️ Aggiornato 3 mesi fa

Commenti