コンテンツへスキップ

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

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

1.問題の切り分け

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

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

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

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

必要な依存関係がすべて MRE に含まれていることを確認してください。あなたのコードが外部ライブラリに依存している場合は、 必要なパッケージとそのバージョンを指定してください。理想的には、バグ報告の中で yolo checks もし ultralytics 設置されているか pip list 他の道具のために。

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

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

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

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

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

6.MREのテスト

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

MREの例

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

バグの説明

0チャンネルの画像で推論を実行すると、入力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.3.0
  • ultralytics==8.2.0

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

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

よくあるご質問

Ultralytics YOLO リポジトリのバグ報告用に、効果的な最小再現例(MRE)を作成するにはどうすればよいですか?

Ultralytics YOLO リポジトリのバグ報告用に効果的な最小再現例(MRE)を作成するには、以下の手順に従ってください:

  1. 問題を分離する:問題に直接関係のないコードや依存関係を取り除く。
  2. 公開モデルとデータセットを利用する:のような公的資源を活用する。 yolov8n.pt そして coco8.yaml 再現性を高めるためである。
  3. 必要な依存関係をすべて含める:必要なパッケージとそのバージョンを指定します。依存関係は yolo checks もし ultralytics 設置されているか pip list.
  4. 問題の明確な説明を書く:エラーメッセージやログを含め、期待される動作と実際の動作を説明してください。
  5. コードを適切にフォーマットする:コードブロックを使ってコードを書式化し、読みやすくしましょう。
  6. MREをテストする:あなたのMREが修正なしで問題を再現することを確認してください。

詳細なガイドについては、最小限の再現可能な例を作成するを参照してください。

Ultralytics YOLO バグ報告の MRE で、なぜ一般に公開されているモデルやデータセットを使う必要があるのか?

MREに一般に公開されているモデルやデータセットを使用することで、メンテナンス担当者は独自データにアクセスすることなく、簡単にサンプルを実行することができます。これにより、より迅速かつ効率的に問題を解決することができます。例えば yolov8n.pt モデルと coco8.yaml データセットは、デバッグプロセスの標準化と簡素化に役立ちます。公開モデルとデータセットの詳細については 公開モデルとデータセットを利用する セクションを参照されたい。

Ultralytics YOLO のバグレポートにはどのような情報を記載すればよいですか?

Ultralytics YOLO の包括的なバグレポートには、以下を含めるべきである:

  • 明確な説明:問題、期待される行動、実際の行動を説明する。
  • エラーメッセージ:関連するエラーメッセージやログを含める。
  • 依存関係:必要な依存関係とそのバージョンを一覧表示します。
  • MRE:最低限再現可能な例を提示すること。
  • 再現するための手順問題を再現するために必要なステップの概要。

完全なチェックリストについては、「問題の明確な説明を書く」のセクションを参照してください。

GitHubにバグレポートを提出する際、コードを適切にフォーマットするにはどうすればよいですか?

GitHubにバグレポートを提出する際に、コードを適切にフォーマットする:

  • コードブロックを作成するには、三重バックスティック (```) を使用します。
  • シンタックス・ハイライトを行うプログラミング言語を指定する、例えば ```python.
  • 読みやすくするために、コードが正しくインデントされていることを確認してください。

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

コードの書式に関するヒントは、コードを正しく書式設定するを参照してください。

MREをバグレポートに提出する前にチェックすべき一般的なエラーにはどのようなものがありますか?

MREを提出する前に、以下のことを確認してください:

  • 問題が再現可能であることを確認する。
  • すべての依存関係がリストアップされ、正しいことを確認する。
  • 不要なコードを削除する。
  • MREをテストし、修正なしで問題が再現することを確認する。

詳細なチェックリストについては、Test Your MREのセクションをご覧ください。

📅作成:1年前 ✏️更新しました 3ヶ月前

コメント