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