Ultralytics YOLO27 :

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

Lorsque tu soumets un rapport de bug concernant les dépôts Ultralytics YOLO, il est essentiel de fournir un exemple minimal reproductible (MRE). Un MRE est un petit morceau de code autonome qui illustre le problème rencontré. Fournir un MRE aide les mainteneurs 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 bugs concernant les dépôts Ultralytics YOLO.

1. Isoler le problème#

La première étape pour créer un MRE consiste à isoler le problème. Supprime tout code ou toute dépendance inutile qui n'est pas directement lié au problème. Concentre-toi sur la partie spécifique 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#

Lorsque tu crées 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. Cela garantit que les mainteneurs 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#

Vérifie que toutes les dépendances nécessaires sont incluses dans ton MRE. Si ton code repose sur des bibliothèques externes, indique les packages requis et leurs versions. Dans l'idéal, répertorie les dépendances dans ton rapport de bug à l'aide de yolo checks si ultralytics est installé, ou de pip list pour les autres outils.

4. Rédiger une description claire du problème#

Fournis une description claire et concise du problème rencontré. Explique le comportement attendu et le comportement réel 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 plus facilement ton code. Dans GitHub, tu peux créer un bloc de code en entourant 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. Vérifie que d'autres personnes peuvent exécuter ton exemple sans problème ni modification.

Exemple de MRE#

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

Description du bug :

Lors de l'exécution de l'inférence sur une image à 0 canal, j'obtiens une erreur liée aux dimensions du tenseur d'entrée.

MRE :

import torch

from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.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.8.0
  • ultralytics==8.4.142

Dans cet exemple, le MRE illustre le problème avec une quantité minimale de code, utilise un modèle public ("yolo26n.pt"), inclut toutes les dépendances nécessaires et fournit une description claire du problème accompagnée du message d'erreur.

En suivant ces recommandations, tu aideras les mainteneurs 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 pour les rapports de bugs concernant les dépôts Ultralytics YOLO, suis ces étapes :

    1. Isoler le problème : supprime tout code ou toute 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 reproductibilité.
    3. Inclure toutes les dépendances nécessaires : indique les packages requis et leurs versions. Tu peux répertorier les dépendances à l'aide de yolo checks si ultralytics est installé, ou de pip list.
    4. Rédiger une description claire du problème : explique le comportement attendu et le comportement réel, en incluant les messages d'erreur ou les journaux éventuels.
    5. Formater correctement ton code : utilise des blocs de code pour formater ton code et en faciliter la lecture.
    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 garantit que les mainteneurs peuvent facilement exécuter ton 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 du modèle yolo26n.pt et du jeu de données coco8.yaml contribue à standardiser 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 bug complet concernant Ultralytics YOLO doit inclure :

    • Description claire : explique le problème, le comportement attendu et le comportement réel.
    • Messages d'erreur : inclus les messages d'erreur ou les journaux pertinents.
    • Dépendances : répertorie 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 consulter la liste de vérification complète, reporte-toi à la section Rédiger une description claire du problème.

  • Pour formater correctement ton code lorsque tu soumets un rapport de bug 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.
    • Vérifie que ton code est correctement indenté pour en faciliter la lecture.

    Exemple :

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

    Pour plus de conseils sur le formatage du code, consulte Formater correctement ton code.

  • Avant de soumettre ton MRE, vérifie que tu as bien :

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

    Pour consulter une liste de vérification détaillée, rends-toi dans la section Tester ton MRE.

Commentaires