Zum Inhalt springen

Erstellung eines minimalen reproduzierbaren Beispiels für Fehlerberichte

Wenn Sie einen Fehlerbericht für Ultralytics YOLO-Repositories einreichen, ist es wichtig, ein Minimum Reproducible Example (MRE) anzugeben. Ein MRE ist ein kleines, in sich geschlossenes Code-Beispiel, das das Problem demonstriert, das Sie erleben. Die Bereitstellung eines MRE hilft Maintainern und Contributoren, das Problem zu verstehen und effizienter an einer Lösung zu arbeiten. Dieser Leitfaden erklärt, wie Sie ein MRE erstellen, wenn Sie Fehlerberichte an Ultralytics YOLO-Repositories senden.

1. Isolieren Sie das Problem

Der erste Schritt bei der Erstellung eines MRE besteht darin, das Problem zu isolieren. Entfernen Sie unnötigen Code oder Abhängigkeiten, die nicht in direktem Zusammenhang mit dem Problem stehen. Konzentrieren Sie sich auf den spezifischen Teil des Codes, der das Problem verursacht, und eliminieren Sie alle irrelevanten Abschnitte.

2. Öffentliche Modelle und Datensätze verwenden

Verwenden Sie bei der Erstellung eines MRE öffentlich verfügbare Modelle und Datensätze, um das Problem zu reproduzieren. Verwenden Sie beispielsweise die yolov8n.pt Modell und das coco8.yaml Datensatz. Dies stellt sicher, dass die Betreuer und Mitwirkenden Ihr Beispiel einfach 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 einbinden

Stellen Sie sicher, dass alle notwendigen Abhängigkeiten in Ihrem MRE enthalten sind. Wenn Ihr Code auf externe Bibliotheken angewiesen ist, geben Sie die erforderlichen Pakete und ihre Versionen an. Idealerweise listen Sie die Abhängigkeiten in Ihrem Fehlerbericht auf, indem Sie yolo checks wenn Sie ultralytics installiert oder pip list für andere Tools.

4. Schreiben Sie eine klare Beschreibung des Problems

Geben Sie eine klare und prägnante Beschreibung des Problems, das Sie erleben. Erläutern Sie das erwartete Verhalten und das tatsächliche Verhalten, das Sie beobachten. Fügen Sie gegebenenfalls relevante Fehlermeldungen oder Protokolle hinzu.

5. Formatieren Sie Ihren Code korrekt

Formatieren Sie Ihren Code ordnungsgemäß mit 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. Testen Sie Ihre MRE

Bevor Sie Ihre MRE einreichen, testen Sie sie, um sicherzustellen, dass sie das Problem genau reproduziert. Stellen Sie sicher, dass andere Ihr 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 ich eine Inferenz auf einem 0-Kanal-Bild ausführe, erhalte ich einen Fehler bezüglich der Dimensionen des 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 das MRE das Problem mit einem minimalen Codeaufwand und verwendet ein öffentliches Modell ("yolov8n.pt"), alle notwendigen Abhängigkeiten enthält und eine klare Beschreibung des Problems zusammen mit der Fehlermeldung liefert.

Indem Sie diese Richtlinien befolgen, helfen Sie den Betreuern und Mitwirkenden von Ultralytics YOLO-Repositories, Ihr Problem effizienter zu verstehen und zu lösen.

FAQ

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

Um ein effektives Minimal Reproducible Example (MRE) für Fehlerberichte in Ultralytics YOLO Repositories zu erstellen, führen Sie die folgenden Schritte aus:

  1. Problem isolieren: Entfernen Sie jeglichen Code oder Abhängigkeiten, die nicht in direktem Zusammenhang mit dem Problem stehen.
  2. Öffentliche Modelle und Datensätze verwenden: Nutzen Sie öffentliche Ressourcen wie yolov8n.pt und coco8.yaml für eine einfachere Reproduzierbarkeit.
  3. Alle notwendigen Abhängigkeiten einbeziehen: Geben Sie die erforderlichen Pakete und ihre Versionen an. Sie können Abhängigkeiten mit auflisten yolo checks wenn Sie ultralytics installiert oder pip list.
  4. Schreiben Sie eine klare Beschreibung des Problems: Erläutern Sie das erwartete und tatsächliche Verhalten, einschließlich aller Fehlermeldungen oder Protokolle.
  5. Formatieren Sie Ihren Code korrekt: Verwenden Sie Codeblöcke, um Ihren Code zu formatieren und ihn so leichter lesbar zu machen.
  6. Testen Sie Ihr MRE: Stellen Sie sicher, dass Ihr MRE das Problem ohne Änderungen reproduziert.

Eine detaillierte Anleitung finden Sie 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 verfügbarer Modelle und Datensätze in Ihrem MRE stellt sicher, dass die Betreuer Ihr Beispiel problemlos ausführen können, ohne Zugriff auf proprietäre Daten zu benötigen. Dies ermöglicht eine schnellere und effizientere Problemlösung. Beispielsweise hilft die Verwendung des yolov8n.pt Modell und coco8.yaml Datensatz hilft, den Debugging-Prozess zu standardisieren und zu vereinfachen. Erfahren Sie mehr über öffentliche Modelle und Datensätze im Öffentliche Modelle und Datensätze verwenden Abschnitt.

Welche Informationen sollte ich in meinen Fehlerbericht für Ultralytics YOLO aufnehmen?

Ein umfassender Fehlerbericht für Ultralytics YOLO sollte Folgendes enthalten:

  • Klare Beschreibung: Erläutern Sie das Problem, das erwartete Verhalten und das tatsächliche Verhalten.
  • Fehlermeldungen: Fügen Sie alle relevanten Fehlermeldungen oder Protokolle hinzu.
  • Abhängigkeiten: Liste der erforderlichen Abhängigkeiten und ihrer Versionen.
  • MRE: Stellen Sie ein minimales reproduzierbares Beispiel bereit.
  • Schritte zur Reproduktion: Beschreiben Sie die Schritte, die zur Reproduktion des Problems erforderlich sind.

Eine vollständige Checkliste finden Sie im Abschnitt Schreiben Sie eine klare Beschreibung des Problems.

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

So formatieren Sie Ihren Code korrekt, wenn Sie einen Fehlerbericht auf GitHub einreichen:

  • Verwenden Sie dreifache Backticks (```), um Codeblöcke zu erstellen.
  • Geben Sie die Programmiersprache für die Syntaxhervorhebung an, z. B. ```python.
  • Stellen Sie sicher, dass Ihr Code zur besseren Lesbarkeit korrekt eingerückt ist.

Beispiel:

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

Weitere Tipps zur Codeformatierung finden Sie unter Code richtig formatieren.

Welche häufigen Fehler sollte ich überprüfen, bevor ich meinen MRE für einen Fehlerbericht einreiche?

Bevor Sie Ihre MRE einreichen, stellen Sie sicher, dass:

  • Verifizieren Sie, dass das Problem reproduzierbar ist.
  • Stellen Sie sicher, dass alle Abhängigkeiten aufgeführt und korrekt sind.
  • Entfernen Sie unnötigen Code.
  • Testen Sie das MRE, um sicherzustellen, dass es das Problem ohne Änderungen reproduziert.

Eine detaillierte Checkliste finden Sie im Abschnitt Testen Sie Ihr MRE.



📅 Erstellt vor 7 Monaten ✏️ Aktualisiert vor 4 Monaten

Kommentare