Création d'un exemple minimum reproductible pour les rapports de bogues dans Ultralytics YOLO Repositories
Lorsque tu soumets un rapport de bogue pour les dépôts 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 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. Cela signifie qu'il faut supprimer tout code inutile ou toute dépendance qui n'est pas directement liée au problème. Concentre-toi sur la partie spécifique du code qui cause le problème et supprime tout code non pertinent.
2. Utiliser des modèles et des ensembles de données publics
Lors de la création d'un ERM, utilise des modèles et des ensembles de données accessibles au public pour reproduire le problème. Par exemple, utilise le modèle 'yolov8n.pt' et le jeu de données 'coco8.yaml'. Cela garantit que les responsables et les contributeurs peuvent facilement exécuter ton 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
Assure-toi d'inclure toutes les dépendances nécessaires dans ton MRE. Si ton code repose sur des bibliothèques externes, spécifie les paquets requis et leurs versions. L'idéal est de fournir un requirements.txt
ou liste les dépendances dans ton rapport de bogue.
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
Lorsque tu soumets un MRE, formate ton code correctement en utilisant des blocs de code dans la description du problème. Cela permet aux autres de lire et de comprendre plus facilement ton code. Dans GitHub, tu peux créer un bloc de code en entourant ton code de triples crochets (```) et en spécifiant la langue :
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 du detect.py
sur l'image d'exemple de l'ensemble de données 'coco8.yaml', 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.0.0
- ultralytics==8.0.90
Dans cet exemple, le MRE 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, tu aideras les responsables et les contributeurs des dépôts Ultralytics YOLO à comprendre et à résoudre ton problème plus efficacement.