Ultralytics YOLO27 :
Get Started

Créer un exemple minimal reproductible pour les rapports de bogues#

Lorsque tu soumets un rapport de bogue pour les dépôts Ultralytics YOLO, il est essentiel de fournir un exemple minimal reproductible (MRE). Un MRE est un petit extrait de code autonome qui illustre le problème rencontré. Fournir un MRE aide les responsables de maintenance et les contributeurs à comprendre le problème et à travailler plus efficacement à sa résolution. Ce guide explique comment créer un MRE lors de la soumission de rapports de bogues pour les dépôts Ultralytics YOLO.

1. Isoler le problème#

La première étape de la création d’un MRE consiste à isoler le problème. Supprime tout code ou dépendance inutile qui n’est pas directement lié au problème. Concentre-toi sur la partie précise du code qui provoque le problème et élimine les sections sans rapport.

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

Lors de la création d’un MRE, utilise des modèles et des jeux de données accessibles au public pour reproduire le problème. Par exemple, utilise le modèle yolo26n.pt et le jeu de données coco8.yaml. Ainsi, les responsables de maintenance et les contributeurs peuvent facilement exécuter ton exemple et examiner 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#

Veille à inclure toutes les dépendances nécessaires dans ton MRE. Si ton code s’appuie sur des bibliothèques externes, indique les paquets requis et leurs versions. Dans l’idéal, liste les dépendances dans ton rapport de bogue avec yolo checks si ultralytics est installé, ou avec pip list pour les autres outils.

4. Décrire clairement le problème#

Décris clairement et brièvement le problème rencontré. Explique le comportement attendu et le comportement observé. Le cas échéant, inclus les messages d’erreur ou les journaux pertinents.

5. Formater correctement ton code#

Formate correctement ton code à l’aide de blocs de code dans la description du problème. Cela permet aux autres de lire et de comprendre ton code plus facilement. Sur GitHub, tu peux créer un bloc de code en encadrant ton code de trois accents graves (```) et en indiquant le langage :

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

6. Tester ton MRE#

Avant de soumettre ton MRE, teste-le pour vérifier qu’il reproduit fidèlement le problème. Assure-toi que les autres peuvent exécuter ton exemple sans problème ni modification.

Exemple de MRE#

Voici un exemple de MRE pour un rapport de bogue hypothétique :

Description du bogue :

Lors d’une inférence sur une image à 0 canal, je reçois une erreur liée aux dimensions du tenseur d’entrée.

MRE :

import torch

from ultralytics import YOLO

# Charger le modèle
model = YOLO("yolo26n.pt")

# Charger une image à 0 canal
image = torch.rand(1, 0, 640, 640)

# Exécuter le modèle
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.8.0
  • ultralytics==8.4.142

Dans cet exemple, le MRE illustre le problème avec un minimum de code, utilise un modèle public ("yolo26n.pt"), inclut toutes les dépendances nécessaires et décrit clairement le problème avec le message d’erreur.

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

FAQ#

  • Pour créer un exemple minimal reproductible (MRE) efficace destiné aux rapports de bogues dans les dépôts Ultralytics YOLO, suis ces étapes :

    1. Isoler le problème : supprime tout code ou dépendance qui n’est pas directement lié au problème.
    2. Utiliser des modèles et des jeux de données publics : utilise des ressources publiques comme yolo26n.pt et coco8.yaml pour faciliter la reproduction du problème.
    3. Inclure toutes les dépendances nécessaires : indique les paquets requis et leurs versions. Tu peux répertorier les dépendances avec yolo checks si ultralytics est installé, ou avec pip list.
    4. Décrire clairement le problème : explique le comportement attendu et le comportement observé, en incluant les messages d’erreur ou les journaux éventuels.
    5. Formater correctement ton code : utilise des blocs de code pour le mettre en forme et le rendre plus facile à lire.
    6. Tester ton MRE : vérifie que ton MRE reproduit le problème sans modification.

    Pour obtenir un guide détaillé, consulte Créer un exemple minimal reproductible.

  • L’utilisation de modèles et de jeux de données accessibles au public dans ton MRE permet aux responsables de maintenance d’exécuter facilement ton exemple sans avoir besoin d’accéder à des données propriétaires. Cela accélère et améliore la résolution des problèmes. Par exemple, l’utilisation du modèle yolo26n.pt et du jeu de données coco8.yaml contribue à normaliser et à simplifier le processus de débogage. Pour en savoir plus sur les modèles et les jeux de données publics, consulte la section Utiliser des modèles et des jeux de données publics.

  • Un rapport de bogue complet pour Ultralytics YOLO doit inclure :

    • Description claire : explique le problème, le comportement attendu et le comportement observé.
    • Messages d’erreur : inclus les messages d’erreur ou les journaux pertinents.
    • Dépendances : liste les dépendances requises et leurs versions.
    • MRE : fournis un exemple minimal reproductible.
    • Étapes de reproduction : détaille les étapes nécessaires pour reproduire le problème.

    Pour obtenir une liste de vérification complète, consulte la section Décrire clairement le problème.

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

    • Utilise trois accents graves (```) pour créer des blocs de code.
    • Indique le langage de programmation pour la coloration syntaxique, par exemple : ```python.
    • Veille à ce que ton code soit correctement indenté pour en faciliter la lecture.

    Exemple :

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

    Pour obtenir d’autres conseils sur la mise en forme du code, consulte Formater correctement ton code.

  • Avant de soumettre ton MRE, veille à :

    • Vérifier que le problème est reproductible.
    • Vérifier que toutes les dépendances sont répertoriées et correctes.
    • Supprimer tout code inutile.
    • Tester le MRE pour vérifier qu’il reproduit le problème sans modification.

    Pour obtenir une liste de vérification détaillée, consulte la section Tester ton MRE.

Commentaires