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 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 de la maintenance 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 :

# 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 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 :

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

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.



Créé le 2023-11-12, Mis à jour le 2023-11-12
Auteurs : glenn-jocher (1)

Commentaires