コンテンツへスキップ

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

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

1.問題の切り分け

MRE を作成する最初のステップは、問題を切り分けることです。問題に直接関係しない不要なコードや依存関係をすべて削除します。問題の原因となっているコードの特定の部分に焦点を合わせ、無関係なセクションを削除します。

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

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

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

必要なすべての依存関係が MRE に含まれていることを確認します。コードが外部ライブラリに依存している場合は、必要なパッケージとそのバージョンを指定します。理想的には、バグレポートに依存関係をリストアップします。 yolo checks あなたが持っている場合 ultralytics installed または pip list 他のツール用。

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

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

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

問題の説明のコードブロックを使用して、コードを適切にフォーマットします。これにより、他のユーザーがコードを読みやすく理解しやすくなります。GitHub では、コードを 3 つのバッククォート (''') でラップし、言語を指定することで、コードブロックを作成できます。

```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 installed または 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
```

コードの書式に関する詳しいヒントは、Format Your Code Properlyを参照してください。

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

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

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

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



作成日:2023-11-12 更新日:2024-07-04
作成者:glenn-jocher(4),IvorZhu331(1)

コメント