Erstellung eines minimalen reproduzierbaren Beispiels für Fehlerberichte

Wenn du einen Fehlerbericht für Ultralytics YOLO Repositories einreichst, ist es wichtig, ein minimales reproduzierbares Beispiel (MRE) bereitzustellen. Ein MRE ist ein kleiner, in sich geschlossener Codeabschnitt, der das Problem demonstriert, das bei dir auftritt. Die Bereitstellung eines MRE hilft Betreuern und Mitwirkenden, das Problem besser zu verstehen und effizienter an einer Lösung zu arbeiten. Dieser Leitfaden erklärt, wie du ein MRE erstellst, wenn du Fehlerberichte an Ultralytics YOLO Repositories sendest.

1. Isoliere das Problem

Der erste Schritt bei der Erstellung eines MRE besteht darin, das Problem zu isolieren. Entferne alle unnötigen Code-Teile oder Abhängigkeiten, die nicht direkt mit dem Problem zusammenhängen. Konzentriere dich auf den spezifischen Teil des Codes, der das Problem verursacht, und eliminiere alle irrelevanten Abschnitte.

2. Verwende öffentliche Modelle und Datensätze

Verwende bei der Erstellung eines MRE öffentlich verfügbare Modelle und Datensätze, um das Problem zu reproduzieren. Verwende beispielsweise das yolo26n.pt Modell und den coco8.yaml Datensatz. Dies stellt sicher, dass die Betreuer und Mitwirkenden dein Beispiel problemlos ausführen und das Problem untersuchen können, ohne Zugriff auf proprietäre Daten oder benutzerdefinierte Modelle zu benötigen.

3. Füge alle notwendigen Abhängigkeiten hinzu

Stelle sicher, dass alle notwendigen Abhängigkeiten in deinem MRE enthalten sind. Wenn dein Code auf externen Bibliotheken basiert, gib die erforderlichen Pakete und deren Versionen an. Idealerweise listest du die Abhängigkeiten in deinem Fehlerbericht mit yolo checks auf, falls du ultralytics installiert hast, oder mit pip list für andere Tools.

4. Schreibe eine klare Beschreibung des Problems

Gib eine klare und prägnante Beschreibung des Problems an, das du erlebst. Erkläre das erwartete Verhalten und das tatsächliche Verhalten, auf das du stößt. Füge gegebenenfalls relevante Fehlermeldungen oder Protokolle bei.

5. Formatiere deinen Code korrekt

Formatiere deinen Code ordnungsgemäß mithilfe von Codeblöcken in der Fehlerbeschreibung. Dies erleichtert es anderen, 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:

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

6. Teste dein MRE

Bevor du dein MRE einreichst, teste es, um sicherzustellen, dass es das Problem präzise reproduziert. 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 einen Fehler bezüglich der Dimensionen des Eingabe-Tensors.

MRE:

import torch

from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.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, verwendet ein öffentliches Modell ("yolo26n.pt"), enthält alle notwendigen Abhängigkeiten und bietet eine klare Beschreibung des Problems zusammen mit der Fehlermeldung.

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

FAQ

Wie erstelle ich ein effektives minimales reproduzierbares Beispiel (MRE) für Fehlerberichte in Ultralytics YOLO Repositories?

Um ein effektives minimales reproduzierbares Beispiel (MRE) für Fehlerberichte in Ultralytics YOLO Repositories zu erstellen, folge diesen Schritten:

  1. Isoliere das Problem: Entferne jeglichen Code oder Abhängigkeiten, die nicht direkt mit dem Problem zusammenhängen.
  2. Verwende öffentliche Modelle und Datensätze: Nutze öffentliche Ressourcen wie yolo26n.pt und coco8.yaml für eine einfachere Reproduzierbarkeit.
  3. Füge alle notwendigen Abhängigkeiten hinzu: Gib die erforderlichen Pakete und deren Versionen an. Du kannst Abhängigkeiten mit yolo checks auflisten, falls du ultralytics installiert hast, oder mit pip list.
  4. Schreibe eine klare Beschreibung des Problems: Erkläre das erwartete und tatsächliche Verhalten, einschließlich eventueller Fehlermeldungen oder Protokolle.
  5. Formatiere deinen Code korrekt: 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.

Für eine detaillierte Anleitung siehe Erstellung eines minimalen 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 deinem MRE stellt sicher, dass die Betreuer dein Beispiel einfach 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 yolo26n.pt Modells und des coco8.yaml Datensatzes dabei, den Debugging-Prozess zu standardisieren und zu vereinfachen. Erfahre mehr über öffentliche Modelle und Datensätze im Abschnitt Verwende öffentliche Modelle und Datensätze.

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

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

  • Klare Beschreibung: Erkläre das Problem, das erwartete Verhalten und das tatsächliche Verhalten.
  • Fehlermeldungen: Füge alle relevanten Fehlermeldungen oder Protokolle bei.
  • Abhängigkeiten: Liste die erforderlichen Abhängigkeiten und deren Versionen auf.
  • MRE: Stelle ein minimales reproduzierbares Beispiel bereit.
  • Reproduktionsschritte: Skizziere die Schritte, die erforderlich sind, um das Problem zu reproduzieren.

Für eine vollständige Checkliste beziehe dich auf den Abschnitt Schreibe eine klare Beschreibung des Problems.

Wie kann ich meinen Code ordnungsgemäß formatieren, wenn ich einen Fehlerbericht auf GitHub einreiche?

Um deinen Code ordnungsgemäß zu formatieren, wenn du einen Fehlerbericht auf GitHub einreichst:

  • Verwende dreifache Backticks (```), um Codeblöcke zu erstellen.
  • Gib die Programmiersprache für Syntax-Highlighting an, z. B. ```python.
  • Stelle sicher, dass dein Code zur besseren Lesbarkeit korrekt eingerückt ist.

Beispiel:

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

Für weitere Tipps zur Code-Formatierung siehe Formatiere deinen Code korrekt.

Was sind einige häufige Fehler, die ich vor dem Einreichen meines MRE für einen Fehlerbericht prüfen sollte?

Bevor du dein MRE einreichst, stelle sicher, dass du:

  • Überprüfst, ob das Problem reproduzierbar ist.
  • Sicherstellst, dass alle Abhängigkeiten aufgelistet und korrekt sind.
  • Unnötigen Code entfernst.
  • Das MRE testest, um sicherzustellen, dass es das Problem ohne Änderungen reproduziert.

Für eine detaillierte Checkliste besuche den Abschnitt Teste dein MRE.

Kommentare