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