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 :
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 :
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 :
- Isoler le problème: Supprimez tout code ou dépendance qui n'est pas directement lié au problème.
- Utiliser des modèles et des ensembles de données publics: Utiliser les ressources publiques telles que
yolov8n.pt
etcoco8.yaml
pour faciliter la reproductibilité. - 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 avezultralytics
installé oupip list
. - Rédigez une description claire du problème: Expliquez le comportement attendu et réel, y compris les messages d'erreur ou les journaux.
- Formatez votre code correctement: Utilisez des blocs de code pour formater votre code et le rendre plus facile Ă lire.
- 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 :
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.