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 che stai riscontrando. Fornire un MRE aiuta i manutentori e i collaboratori a comprendere il problema e a lavorare alla sua risoluzione 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 passaggio per la creazione di un MRE consiste nell'isolare il problema. Rimuovere il codice non necessario o le dipendenze che non sono direttamente correlate al problema. Concentrati sulla parte specifica del codice che causa il problema ed elimina 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 metodo yolov8n.pt modello e il coco8.yaml Dataset. Ciò garantisce che i manutentori e i collaboratori possano facilmente eseguire l'esempio e indagare sul problema senza bisogno di accedere a dati proprietari o modelli personalizzati.

3. Includere tutte le dipendenze necessarie

Assicurarsi che tutte le dipendenze necessarie siano incluse nell'MRE. Se il codice si basa su librerie esterne, specificare i pacchetti necessari e le relative versioni. Idealmente, elencare le dipendenze nella segnalazione di bug usando yolo checks Se si dispone di ultralytics installato o pip list per altri strumenti.

4. Scrivi una chiara descrizione del problema

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

5. Formatta il tuo codice in modo corretto

Formattare correttamente il codice utilizzando i blocchi di codice nella descrizione del problema. In questo modo è più facile per gli altri utenti leggere e comprendere il codice. In GitHub è possibile creare un blocco di codice eseguendo il wrapping del codice con tripli apici inversi (''') e specificando il linguaggio:

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

6. Prova il tuo MRE

Prima di inviare il tuo MRE, testalo per assicurarti che riproduca accuratamente il problema. Assicurati che gli altri possano eseguire il tuo 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, viene visualizzato un errore relativo alle dimensioni dell'input 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 illustra il problema con una quantità minima di codice, usa un modello pubblico ("yolov8n.pt"), include tutte le dipendenze necessarie e fornisce una descrizione chiara del problema insieme al messaggio di errore.

Seguendo queste linee guida, aiuterai i manutentori e i collaboratori dei repository di Ultralytics YOLO a comprendere e risolvere il tuo problema in modo più efficiente.

DOMANDE FREQUENTI

Come posso creare 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 , segui questi passaggi:

  1. Isolare il problema: Rimuovi il codice o le dipendenze che non sono direttamente collegate al problema.
  2. Utilizzare modelli e dataset pubblici: Utilizza risorse pubbliche come yolov8n.pt e coco8.yaml per una più facile riproducibilità.
  3. Includere tutte le dipendenze necessarie: Specifica i pacchetti richiesti e le loro versioni. Puoi elencare le dipendenze utilizzando yolo checks Se si dispone di ultralytics installato o pip list.
  4. Scrivi una chiara descrizione del problema: Spiega il comportamento atteso e quello effettivo, includendo eventuali messaggi di errore o log.
  5. Formatta il tuo codice in modo corretto: Usa i blocchi di codice per formattare il codice e renderlo più leggibile.
  6. Testa il tuo MRE: Assicurati che il tuo MRE riproduca il problema senza modifiche.

Per una guida dettagliata, vedi Creare 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 tuo MRE assicura che i manutentori possano eseguire facilmente il tuo esempio senza dover accedere a dati proprietari. Ciò consente di risolvere i problemi in modo più rapido ed efficiente. Ad esempio, l'utilizzo dell'opzione 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, consulta 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: Spiega il problema, il comportamento atteso e quello effettivo.
  • Messaggi di errore: Includi tutti i messaggi di errore o i log rilevanti.
  • Dipendenze: Elenca le dipendenze necessarie e le loro versioni.
  • MRE: Fornire un esempio minimo riproducibile.
  • Passi per la riproduzione: Illustra i passaggi necessari per riprodurre il problema.

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

  • Usa tripli 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 garantire la leggibilità.

Esempio:

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

Per ulteriori suggerimenti sulla formattazione del codice, consulta Formattare il codice in modo corretto.

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

Prima di inviare il tuo MRE, assicurati di:

  • Verifica che il problema sia riproducibile.
  • Assicurati che tutte le dipendenze siano elencate e corrette.
  • Rimuovi il codice non necessario.
  • Testa il MRE per assicurarti che riproduca il problema senza modifiche.

Per una lista di controllo dettagliata, visita la sezione Prova il tuo MRE.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (4), IvorZhu331 (1)

Commenti