Skip to content

Création d'un exemple minimum reproductible pour les rapports de bogues dans Ultralytics YOLO Repositories

Lorsque tu soumets un rapport de bogue pour Ultralytics YOLO il est essentiel de fournir un exemple minimum reproductible (MRE). Un MRE est un petit morceau de code autonome qui démontre le problème que tu rencontres. Fournir un MRE aide les responsables de la maintenance et les contributeurs à comprendre le problème et à travailler sur un correctif plus efficacement. Ce guide explique comment créer un MRE lors de la soumission de rapports de bogues aux dépôts Ultralytics YOLO .

1. Isoler le problème

La première étape de la création d’une EMR consiste à isoler le problème. Supprimez tout code inutile ou toute dépendance qui n’est pas directement lié au problème. Concentrez-vous sur la partie spécifique du code qui cause le problème et éliminez toutes les sections non pertinentes.

2. Utiliser des modèles et des ensembles de données publics

Lors de la création d’un EMR, utilisez des modèles et des ensembles de données accessibles au public pour reproduire le problème. Par exemple, utilisez l’attribut yolov8n.pt et le modèle coco8.yaml jeu de données. Cela garantit que les mainteneurs et les contributeurs peuvent facilement exécuter votre exemple et enquêter sur le problème sans avoir besoin d’accéder à des données propriétaires ou à des modèles personnalisés.

3. Inclure toutes les dépendances nécessaires

Assurez-vous que toutes les dépendances nécessaires sont incluses dans votre EMR. Si votre code s’appuie sur des bibliothèques externes, spécifiez les packages requis et leurs versions. Idéalement, listez les dépendances dans votre rapport de bogue en utilisant yolo checks si vous avez ultralytics installé ou pip list pour d’autres outils.

4. Rédige une description claire du problème

Fournis une description claire et concise du problème que tu rencontres. Explique le comportement attendu et le comportement réel que tu rencontres. Le cas échéant, inclus tout message d'erreur ou journal pertinent.

5. Formate ton code correctement

Formatez correctement votre code à l’aide de blocs de code dans la description du problème. Cela permet aux autres de lire et de comprendre plus facilement votre code. Dans GitHub, vous pouvez créer un bloc de code en enveloppant votre code avec des triples apostrophes inversées (''') et en spécifiant le langage :

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

6. Teste tes MRE

Avant de soumettre ton MRE, teste-le pour t'assurer qu'il reproduit fidèlement le problème. Assure-toi que d'autres personnes peuvent exécuter ton exemple sans problème ni modification.

Exemple de MRE

Voici un exemple d'ERM pour un hypothétique rapport de bogue :

Description du bogue :

Lors de l’exécution de l’inférence sur une image à 0 canal, j’obtiens une erreur liée aux dimensions de l’entrée 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)

Message d'erreur :

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

DĂ©pendances :

  • torch==2.3.0
  • ultralytics==8.2.0

Dans cet exemple, le MRE illustre le problème avec une quantité minimale de code, utilise un modèle public ("yolov8n.pt"), inclut toutes les dépendances nécessaires et fournit une description claire du problème ainsi que le message d’erreur.

En suivant ces directives, tu aideras les responsables et les contributeurs des dépôts Ultralytics YOLO à comprendre et à résoudre ton problème plus efficacement.

FAQ

Comment créer un exemple minimum reproductible (EMR) efficace pour les rapports de bogues dans les dépôts Ultralytics YOLO ?

Pour créer un exemple minimum reproductible (MRE) efficace pour les rapports de bogues dans les dépôts Ultralytics YOLO , suis les étapes suivantes :

  1. Isole le problème: Supprime tout code ou dépendance qui n'est pas directement lié au problème.
  2. Utilise des modèles et des ensembles de données publics: Utilise les ressources publiques comme yolov8n.pt et coco8.yaml pour faciliter la reproductibilité.
  3. Inclure toutes les dépendances nécessaires: Spécifie les paquets requis et leurs versions. Tu peux dresser la liste des dépendances à l'aide de yolo checks si vous avez ultralytics installé ou pip list.
  4. Rédige une description claire du problème: Explique le comportement attendu et le comportement réel, y compris les messages d'erreur ou les journaux.
  5. Formate ton code correctement: Utilise des blocs de code pour formater ton code et le rendre plus facile Ă  lire.
  6. Teste ton MRE: Assure-toi que ton MRE reproduit le problème sans modifications.

Pour un guide détaillé, voir Création d'un exemple minimum reproductible.

Pourquoi devrais-je utiliser des modèles et des ensembles de données accessibles au public dans mon ERM pour Ultralytics YOLO rapports de bogues ?

L'utilisation de modèles et d'ensembles de données accessibles au public dans ton ERM garantit que les responsables peuvent facilement exécuter ton exemple sans avoir besoin d'accéder à des données propriétaires. Cela permet de résoudre les problèmes plus rapidement et plus efficacement. Par exemple, l'utilisation du yolov8n.pt modèle et coco8.yaml permet de normaliser et de simplifier le processus de débogage. Pour en savoir plus sur les modèles et les ensembles de données publics, consulte la rubrique Utilise des modèles et des ensembles de données publics section.

Quelles informations dois-je inclure dans mon rapport de bogue pour Ultralytics YOLO ?

Un rapport de bogue complet pour Ultralytics YOLO devrait inclure les éléments suivants :

  • Description claire: Explique le problème, le comportement attendu et le comportement rĂ©el.
  • Messages d'erreur: Inclure tout message d'erreur ou journal pertinent.
  • DĂ©pendances: Liste les dĂ©pendances requises et leurs versions.
  • MRE: Fournir un exemple minimum reproductible.
  • Marche Ă  suivre pour reproduire le problème : DĂ©cris les Ă©tapes nĂ©cessaires pour reproduire le problème.

Pour obtenir une liste de contrôle complète, reporte-toi à la section Rédiger une description claire du problème.

Comment puis-je formater mon code correctement lorsque je soumets un rapport de bug sur GitHub ?

Pour formater ton code correctement lorsque tu soumets un rapport de bug sur GitHub :

  • Utilise les triples crochets (```) pour crĂ©er des blocs de code.
  • SpĂ©cifie le langage de programmation pour la mise en Ă©vidence de la syntaxe, par exemple, ```python.
  • Veille Ă  ce que ton code soit correctement indentĂ© pour plus de lisibilitĂ©.

Exemple :

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

Pour plus de conseils sur le formatage du code, voir Formate ton code correctement.

Quelles sont les erreurs courantes à vérifier avant de soumettre mon EMR à un rapport de bug ?

Avant de soumettre ton MRE, assure-toi de :

  • VĂ©rifie que le problème est reproductible.
  • Assure-toi que toutes les dĂ©pendances sont rĂ©pertoriĂ©es et correctes.
  • Supprime tout code inutile.
  • Teste le MRE pour t'assurer qu'il reproduit le problème sans modifications.

Pour obtenir une liste de contrôle détaillée, visite la section Teste tes MRE.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (4), IvorZhu331 (1)

Commentaires