Ultralytics YOLO27:

Ein minimales reproduzierbares Beispiel für Fehlerberichte erstellen#

Wenn du einen Fehlerbericht für Ultralytics-YOLO-Repositorys einreichst, ist es wichtig, ein minimales reproduzierbares Beispiel (MRE) bereitzustellen. Ein MRE ist ein kleiner, in sich geschlossener Codeabschnitt, der das auftretende Problem demonstriert. Ein MRE hilft Maintainerinnen, Maintainer und Mitwirkenden, das Problem zu verstehen und effizienter an einer Lösung zu arbeiten. Dieser Leitfaden erklärt, wie du beim Einreichen von Fehlerberichten für Ultralytics-YOLO-Repositorys ein MRE erstellst.

1. Problem isolieren#

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

2. Öffentliche Modelle und Datensätze verwenden#

Verwende beim Erstellen eines MRE öffentlich verfügbare Modelle und Datensätze, um das Problem zu reproduzieren. Verwende beispielsweise das Modell yolo26n.pt und den Datensatz coco8.yaml. Dadurch können Maintainerinnen, Maintainer und Mitwirkende dein Beispiel problemlos ausführen und das Problem untersuchen, ohne Zugriff auf proprietäre Daten oder benutzerdefinierte Modelle zu benötigen.

3. Alle erforderlichen Abhängigkeiten einbinden#

Stelle sicher, dass alle erforderlichen 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, wenn ultralytics installiert ist, oder mit pip list für andere Tools.

4. Das Problem klar beschreiben#

Beschreibe das auftretende Problem klar und präzise. Erkläre das erwartete Verhalten und das tatsächlich beobachtete Verhalten. Füge, sofern zutreffend, relevante Fehlermeldungen oder Protokolle hinzu.

5. Den Code korrekt formatieren#

Formatiere deinen Code in der Problembeschreibung mithilfe von Codeblöcken korrekt. Dadurch können andere deinen Code leichter lesen und verstehen. In GitHub kannst du einen Codeblock erstellen, indem du deinen Code mit drei Backticks (```) umschließt und die Sprache angibst:

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

6. Dein MRE testen#

Teste dein MRE vor dem Einreichen, um sicherzustellen, dass es das Problem korrekt 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 zu einem hypothetischen Fehlerbericht:

Fehlerbeschreibung:

Beim Ausführen der Inferenz für ein Bild mit 0 Kanälen erhalte ich einen Fehler bezüglich der Dimensionen des Eingabetensors.

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.8.0
  • ultralytics==8.4.142

In diesem Beispiel demonstriert das MRE das Problem mit einer minimalen Menge an Code, verwendet ein öffentliches Modell ("yolo26n.pt"), umfasst alle erforderlichen Abhängigkeiten und enthält neben der Fehlermeldung eine klare Beschreibung des Problems.

Wenn du diese Richtlinien befolgst, hilfst du den Maintainerinnen, Maintainer und Mitwirkenden der Ultralytics-YOLO-Repositorys, dein Problem effizienter zu verstehen und zu beheben.

FAQ#

  • Um ein effektives minimales reproduzierbares Beispiel (MRE) für Fehlerberichte in Ultralytics-YOLO-Repositorys zu erstellen, befolge diese Schritte:

    1. Problem isolieren: Entferne Code und Abhängigkeiten, die nicht direkt mit dem Problem zusammenhängen.
    2. Öffentliche Modelle und Datensätze verwenden: Nutze öffentliche Ressourcen wie yolo26n.pt und coco8.yaml, um die Reproduzierbarkeit zu erleichtern.
    3. Alle erforderlichen Abhängigkeiten einbinden: Gib die erforderlichen Pakete und deren Versionen an. Du kannst die Abhängigkeiten mit yolo checks auflisten, wenn ultralytics installiert ist, oder mit pip list.
    4. Das Problem klar beschreiben: Erkläre das erwartete und das tatsächliche Verhalten einschließlich etwaiger Fehlermeldungen oder Protokolle.
    5. Den Code korrekt formatieren: Verwende Codeblöcke, um deinen Code zu formatieren und dadurch leichter lesbar zu machen.
    6. Dein MRE testen: Stelle sicher, dass dein MRE das Problem ohne Änderungen reproduziert.

    Eine ausführliche Anleitung findest du unter Ein minimales reproduzierbares Beispiel erstellen.

  • Durch die Verwendung öffentlich verfügbarer Modelle und Datensätze in deinem MRE können Maintainerinnen und Maintainer dein Beispiel problemlos ausführen, ohne Zugriff auf proprietäre Daten zu benötigen. Dadurch lassen sich Probleme schneller und effizienter beheben. Beispielsweise helfen das Modell yolo26n.pt und der Datensatz coco8.yaml, den Debugging-Prozess zu standardisieren und zu vereinfachen. Weitere Informationen zu öffentlichen Modellen und Datensätzen findest du im Abschnitt Öffentliche Modelle und Datensätze verwenden.

  • 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 relevante Fehlermeldungen oder Protokolle hinzu.
    • Abhängigkeiten: Liste die erforderlichen Abhängigkeiten und deren Versionen auf.
    • MRE: Stelle ein minimales reproduzierbares Beispiel bereit.
    • Schritte zur Reproduktion: Beschreibe die Schritte, die zur Reproduktion des Problems erforderlich sind.

    Eine vollständige Checkliste findest du im Abschnitt Das Problem klar beschreiben.

  • So formatierst du deinen Code beim Einreichen eines Fehlerberichts auf GitHub korrekt:

    • Verwende drei Backticks (```), um Codeblöcke zu erstellen.
    • Gib die Programmiersprache für die Syntaxhervorhebung an, z. B. ```python.
    • Achte für eine bessere Lesbarkeit auf die korrekte Einrückung deines Codes.

    Beispiel:

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

    Weitere Tipps zur Codeformatierung findest du unter Den Code korrekt formatieren.

  • Stelle vor dem Einreichen deines MRE Folgendes sicher:

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

    Eine ausführliche Checkliste findest du im Abschnitt Dein MRE testen.

Kommentare