Zum Inhalt springen

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

Beim Einreichen eines Fehlerberichts für Ultralytics YOLO Repositories einreichst, ist es wichtig, ein Minimum Reproducible Example (MRE) anzugeben. 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. Entfernen Sie unnötigen Code oder Abhängigkeiten, die nicht direkt mit dem Problem zusammenhängen. Konzentrieren Sie sich auf den spezifischen Teil des Codes, der das Problem verursacht, und entfernen Sie alle irrelevanten Abschnitte.

2. Öffentliche Modelle und Datensätze verwenden

Verwenden Sie beim Erstellen einer MRE öffentlich verfügbare Modelle und Datensätze, um das Problem zu reproduzieren. Verwenden Sie z. B. die yolov8n.pt Modell und die coco8.yaml Dataset. Dadurch wird sichergestellt, dass die Betreuer und Mitwirkenden Ihr Beispiel problemlos ausführen und das Problem untersuchen können, ohne Zugriff auf proprietäre Daten oder benutzerdefinierte Modelle zu benötigen.

3. Alle notwendigen Abhängigkeiten einbeziehen

Stellen Sie sicher, dass alle erforderlichen Abhängigkeiten in Ihrer MRE enthalten sind. Wenn Ihr Code auf externen Bibliotheken basiert, geben Sie die erforderlichen Pakete und deren Versionen an. Listen Sie im Idealfall die Abhängigkeiten in Ihrem Fehlerbericht mit yolo checks Wenn Sie ultralytics installiert oder pip list für andere Werkzeuge.

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

Formatieren Sie Ihren Code ordnungsgemäß mithilfe von Codeblöcken in der Problembeschreibung. Dies erleichtert es anderen, Ihren Code zu lesen und zu verstehen. In GitHub können Sie einen Codeblock erstellen, indem Sie Ihren Code mit dreifachen Backticks (''') umschließen und die Sprache angeben:

```python
# 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:

Beim Ausführen der Inferenz auf einem 0-Kanal-Bild erhalte ich eine Fehlermeldung im Zusammenhang mit den 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.3.0
  • ultralytics==8.2.0

In diesem Beispiel demonstriert die MRE das Problem mit einer minimalen Codemenge, verwendet ein öffentliches Modell ("yolov8n.pt"), enthält alle erforderlichen Abhängigkeiten und bietet 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.

FAQ

Wie erstelle ich ein effektives Minimum Reproducible Example (MRE) für Fehlerberichte in Ultralytics YOLO Repositories?

Um ein effektives Minimum Reproducible Example (MRE) für Fehlerberichte in Ultralytics YOLO Repositories zu erstellen, befolge diese Schritte:

  1. Isoliere das Problem: Entferne alle Codes oder Abhängigkeiten, die nicht direkt mit dem Problem zusammenhängen.
  2. Öffentliche Modelle und Datensätze verwenden: Nutzen Sie öffentliche Ressourcen wie yolov8n.pt und coco8.yaml für eine bessere Reproduzierbarkeit.
  3. Alle notwendigen Abhängigkeiten einbeziehen: Gib die benötigten Pakete und ihre Versionen an. Du kannst die Abhängigkeiten auflisten mit yolo checks Wenn Sie ultralytics installiert oder pip list.
  4. Schreibe eine klare Beschreibung des Problems: Erkläre das erwartete und tatsächliche Verhalten, einschließlich aller Fehlermeldungen oder Protokolle.
  5. Formatiere deinen Code ordnungsgemäß: Verwende Codeblöcke, um deinen Code zu formatieren, damit er leichter zu lesen ist.
  6. Teste dein MRE: Stelle sicher, dass dein MRE das Problem ohne Änderungen reproduziert.

Eine ausführliche Anleitung findest du unter Erstellen eines minimal reproduzierbaren Beispiels.

Warum sollte ich öffentlich verfügbare Modelle und Datensätze in meinem MRE für Ultralytics YOLO Fehlerberichte verwenden?

Die Verwendung öffentlich zugänglicher Modelle und Datensätze in deinem MRE stellt sicher, dass die Betreuer dein Beispiel einfach ausführen können, ohne auf proprietäre Daten zugreifen zu müssen. Das ermöglicht eine schnellere und effizientere Problemlösung. Wenn du zum Beispiel die yolov8n.pt Modell und coco8.yaml Datensatz hilft, den Debugging-Prozess zu standardisieren und zu vereinfachen. Mehr über öffentliche Modelle und Datensätze erfährst du in der Öffentliche Modelle und Datensätze verwenden Abschnitt.

Welche Informationen sollte ich in meinem Fehlerbericht für Ultralytics YOLO angeben?

Ein umfassender Fehlerbericht für Ultralytics YOLO sollte enthalten:

  • Klare Beschreibung: Erkläre das Problem, das erwartete Verhalten und das tatsächliche Verhalten.
  • Fehlermeldungen: Füge alle relevanten Fehlermeldungen oder Protokolle ein.
  • Abhängigkeiten: Liste der erforderlichen Abhängigkeiten und ihrer Versionen.
  • MRE: Gib ein minimal reproduzierbares Beispiel an.
  • Schritte zum Reproduzieren: Beschreibe die Schritte, die nötig sind, um das Problem zu reproduzieren.

Eine vollständige Checkliste findest du im Abschnitt " Schreibe eine klare Beschreibung des Problems ".

Wie kann ich meinen Code richtig formatieren, wenn ich einen Fehlerbericht auf GitHub einreiche?

So formatierst du deinen Code richtig, wenn du einen Fehlerbericht auf GitHub einreichst:

  • Verwende dreifache Backticks (````), um Codeblöcke zu erstellen.
  • Gib die Programmiersprache für die Syntaxhervorhebung an, z.B. ```python.
  • Achte darauf, dass dein Code zur besseren Lesbarkeit richtig eingerückt ist.

Beispiel:

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

Weitere Tipps zur Codeformatierung findest du unter Code richtig formatieren.

Was sind häufige Fehler, die ich überprüfen sollte, bevor ich mein MRE für einen Fehlerbericht einreiche?

Bevor du dein MRE einreichst, solltest du sicherstellen, dass:

  • Überprüfe, ob das Problem reproduzierbar ist.
  • Stelle sicher, dass alle Abhängigkeiten aufgelistet und korrekt sind.
  • Entferne jeden unnötigen Code.
  • Teste die MRE, um sicherzustellen, dass sie das Problem ohne Änderungen reproduziert.

Eine detaillierte Checkliste findest du im Abschnitt Teste dein MRE.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (4), IvorZhu331 (1)

Kommentare