Skip to content

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

Lors de la soumission d'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 vous rencontrez. Fournir un MRE aide les mainteneurs et les contributeurs à comprendre le problème et à travailler sur une correction 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 ERM consiste à isoler le problème. Supprimez tout code ou dépendance inutile qui n'est pas directement lié au problème. Concentrez-vous sur la partie spécifique du code qui est à l'origine du 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'une ERM, utilisez des modèles et des ensembles de données accessibles au public pour reproduire le problème. Par exemple, utilisez la base de données yolov8n.pt et le modèle coco8.yaml . Ainsi, les responsables et les contributeurs peuvent facilement exécuter votre exemple et étudier 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 MRE. Si votre code repose sur des bibliothèques externes, indiquez les paquets requis et leurs versions. Idéalement, listez les dépendances dans votre rapport de bogue en utilisant la commande yolo checks si vous avez ultralytics installé ou pip list pour d'autres outils.

4. RĂ©diger une description claire de la question

Fournissez une description claire et concise du problème que vous rencontrez. Expliquez le comportement attendu et le comportement réel que vous rencontrez. Le cas échéant, joignez les messages d'erreur ou les journaux pertinents.

5. Formatez votre code correctement

Formatez correctement votre code en utilisant des blocs de code dans la description du problème. Cela facilite la lecture et la compréhension de votre code. Dans GitHub, vous pouvez créer un bloc de code en entourant votre code de triples crochets (```) et en spécifiant la langue :

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

6. Testez vos MRE

Avant de soumettre votre MRE, testez-le pour vous assurer qu'il reproduit correctement le problème. Assurez-vous que d'autres personnes peuvent exécuter votre exemple sans problème ni modification.

Exemple de MRE

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

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, l'ERM démontre le problème avec un minimum 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, vous aiderez les responsables et les contributeurs des dépôts Ultralytics YOLO à comprendre et à résoudre votre problème plus efficacement.

FAQ

Comment créer un exemple minimum reproductible (MRE) 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 , suivez les étapes suivantes :

  1. Isoler le problème: Supprimez tout code ou dépendance qui n'est pas directement lié au problème.
  2. Utiliser des modèles et des ensembles de données publics: Utiliser les ressources publiques telles que yolov8n.pt et coco8.yaml pour faciliter la reproductibilité.
  3. Inclure toutes les dépendances nécessaires: Spécifiez les paquets requis et leurs versions. Vous pouvez lister les dépendances en utilisant yolo checks si vous avez ultralytics installé ou pip list.
  4. Rédigez une description claire du problème: Expliquez le comportement attendu et réel, y compris les messages d'erreur ou les journaux.
  5. Formatez votre code correctement: Utilisez des blocs de code pour formater votre code et le rendre plus facile Ă  lire.
  6. Testez votre MRE: Assurez-vous que votre MRE reproduit le problème sans modification.

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 votre ERM permet aux responsables de la maintenance d'exécuter facilement votre 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 de l'outil 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, consultez le site web de l'Agence européenne pour l'environnement (AEE). Utiliser 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: Expliquez 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 des dĂ©pendances requises et de leurs versions.
  • MRE: Fournir un exemple minimum reproductible.
  • Étapes Ă  suivre pour reproduire le problème : DĂ©crivez les Ă©tapes nĂ©cessaires pour reproduire le problème.

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

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

Pour formater correctement votre code lorsque vous soumettez un rapport de bogue sur GitHub :

  • Utilisez les triples crochets (```) pour crĂ©er des blocs de code.
  • SpĂ©cifiez le langage de programmation pour la mise en Ă©vidence de la syntaxe, par exemple ```python.
  • Veillez Ă  ce que votre code soit correctement indentĂ© pour une meilleure lisibilitĂ©.

Exemple :

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

Pour plus de conseils sur le formatage du code, voir Formatez votre code correctement.

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

Avant de soumettre votre MRE, assurez-vous de :

  • VĂ©rifier que le problème est reproductible.
  • S'assurer que toutes les dĂ©pendances sont rĂ©pertoriĂ©es et correctes.
  • Supprimer tout code inutile.
  • Testez le MRE pour vous assurer qu'il reproduit le problème sans modifications.

Pour obtenir une liste de contrôle détaillée, consultez la section Testez vos ERM.

📅C réé il y a 1 an ✏️ Mis à jour il y a 3 mois

Commentaires