コンテンツへスキップ

Ultralytics YOLO リポジトリにおけるバグ報告のための最小限の再現可能な例の作成

Ultralytics YOLO リポジトリにバグレポートを提出する場合、最小限の再現可能な例(MRE)を提供することが不可欠です。MRE とは、あなたが経験している問題を示す、自己完結した小さなコードのことです。MRE を提供することで、メンテナや貢献者が問題を理解し、より効率的に修正作業を行うことができます。このガイドでは、Ultralytics YOLO リポジトリにバグレポートを提出する際に MRE を作成する方法を説明します。

1.問題の切り分け

MREを作成する最初のステップは、問題を切り分けることです。これは、問題に直接関係のない不要なコードや依存関係を取り除くことを意味します。問題の原因となっているコードの特定の部分に焦点を当て、無関係なコードはすべて削除する。

2.公開モデルとデータセットを利用する

MREを作成する際には、公開されているモデルやデータセットを使用して問題を再現してください。例えば、'yolov8n.pt' モデルと 'coco8.yaml' データセットを使用してください。こうすることで、メンテナやコントリビュータが独自のデータやカスタムモデルにアクセスすることなく、あなたのサンプルを簡単に実行して問題を調査できるようになります。

3.必要な依存関係をすべて含める

必要な依存関係をすべて MRE に含めるようにしてください。あなたのコードが外部ライブラリに依存している場合は、必要なパッケージとそのバージョンを指定してください。理想的には requirements.txt ファイルを作成するか、バグレポートに依存関係を記入してください。

4.問題の明確な説明を書く

あなたが経験している問題を明確かつ簡潔に説明してください。期待される動作と実際に発生した動作を説明してください。該当する場合は、関連するエラーメッセージやログも含めてください。

5.コードを正しくフォーマットする

MREを提出する際には、issue descriptionにコードブロックを使ってコードを適切にフォーマットしてください。こうすることで、他の人があなたのコードを読んで理解しやすくなります。GitHub では、コードを三重のバックスティック (```) で囲み、言語を指定することでコードブロックを作成できます:

# Your Python code goes here

6.MREのテスト

MREを提出する前に、問題が正確に再現されているかテストしてください。他の人が問題や修正なしにあなたのサンプルを実行できることを確認してください。

MREの例

以下は、仮定のバグレポートのMREの例です:

バグの説明

を実行する。 detect.py スクリプトを'coco8.yaml'データセットのサンプル画像に適用すると、入力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)

エラーメッセージ:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

依存関係:

  • torch==2.0.0
  • ultralytics==8.0.90

この例では、MREは最小限のコードで問題を示し、パブリックモデル('yolov8n.pt')を使用し、必要な依存関係をすべて含み、エラーメッセージとともに問題の明確な説明を提供しています。

これらのガイドラインに従うことで、Ultralytics YOLO リポジトリのメンテナや貢献者があなたの問題を理解し、より効率的に解決できるようになります。



作成日:2023-11-12 更新日:2023-11-12
作成者:glenn-jocher(1)

コメント