Zum Inhalt springen

Ein minimal reproduzierbares Beispiel für Fehlerberichte in Ultralytics YOLO Repositories erstellen

Wenn du einen Fehlerbericht für die Ultralytics YOLO Repositories einreichst, musst du unbedingt ein reproduzierbares Mindestbeispiel (MRE) angeben. Ein MRE ist ein kleines, in sich geschlossenes Stück Code, das das Problem, das du hast, demonstriert. Ein MRE hilft den Betreuern und Mitwirkenden, das Problem zu verstehen und effizienter an einer Lösung zu arbeiten. In diesem Leitfaden wird erklärt, wie man eine MRE erstellt, wenn man Fehlerberichte an Ultralytics YOLO Repositories sendet.

1. Isoliere das Problem

Der erste Schritt bei der Erstellung einer MRE besteht darin, das Problem zu isolieren. Das bedeutet, dass unnötiger Code oder Abhängigkeiten entfernt werden müssen, die nicht direkt mit dem Problem zusammenhängen. Konzentriere dich auf den spezifischen Teil des Codes, der das Problem verursacht, und entferne alle irrelevanten Codes.

2. Öffentliche Modelle und Datensätze verwenden

Wenn du eine MRE erstellst, verwende öffentlich verfügbare Modelle und Datensätze, um das Problem zu reproduzieren. Verwende zum Beispiel das Modell "yolov8n.pt" und den Datensatz "coco8.yaml". Dadurch wird sichergestellt, dass die Betreuer und Mitwirkenden dein Beispiel leicht ausführen und das Problem untersuchen können, ohne auf proprietäre Daten oder eigene Modelle zugreifen zu müssen.

3. Alle notwendigen Abhängigkeiten einbeziehen

Achte darauf, dass du alle notwendigen Abhängigkeiten in deine MRE aufnimmst. Wenn dein Code auf externe Bibliotheken angewiesen ist, gib die benötigten Pakete und ihre Versionen an. Idealerweise solltest du eine requirements.txt Datei oder liste die Abhängigkeiten in deinem Fehlerbericht auf.

4. Schreibe eine klare Beschreibung des Problems

Beschreibe das Problem, das du hast, klar und prägnant. Erkläre das erwartete und das tatsächliche Verhalten, das du feststellst. Falls zutreffend, füge alle relevanten Fehlermeldungen oder Protokolle bei.

5. Formatiere deinen Code richtig

Wenn du ein MRE einreichst, formatiere deinen Code richtig, indem du Codeblöcke in der Problembeschreibung verwendest. Das macht es für andere einfacher, deinen Code zu lesen und zu verstehen. In GitHub kannst du einen Codeblock erstellen, indem du deinen Code mit dreifachen Backticks (````) umschließt und die Sprache angibst:

# Your Python code goes here

6. Teste dein MRE

Bevor du deine MRE einreichst, solltest du sie testen, um sicherzustellen, dass sie das Problem korrekt wiedergibt. Stelle sicher, dass andere dein Beispiel ohne Probleme oder Änderungen ausführen können.

Beispiel für ein MRE

Hier ist ein Beispiel für ein MRE für einen hypothetischen Fehlerbericht:

Fehlerbeschreibung:

Wenn Sie die detect.py Skript auf das Beispielbild aus dem "coco8.yaml"-Datensatz anwendet, erhalte ich einen Fehler in Bezug auf die Abmessungen der Eingabe 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)

Fehlermeldung:

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

Abhängigkeiten:

  • torch==2.0.0
  • ultralytics==8.0.90

In diesem Beispiel demonstriert die MRE das Problem mit einem Minimum an Code, verwendet ein öffentliches Modell ('yolov8n.pt'), enthält alle notwendigen Abhängigkeiten und liefert eine klare Beschreibung des Problems zusammen mit der Fehlermeldung.

Wenn du diese Richtlinien befolgst, hilfst du den Betreuern und Mitwirkenden der Ultralytics YOLO Repositories, dein Problem zu verstehen und effizienter zu lösen.



Erstellt am 2023-11-12, Aktualisiert am 2023-11-12
Autoren: glenn-jocher (1)

Kommentare