バグ報告のための最小限の再現可能な例の作成#
Ultralytics YOLO リポジトリのバグ報告を送信する際は、Minimum Reproducible Example (MRE) を提供することが不可欠です。MRE は、発生している問題を実証する、小さく自己完結型のコードです。MRE を提供することで、メンテナーやコントリビューターが問題を理解し、より効率的に修正に取り組むことができます。このガイドでは、Ultralytics YOLO リポジトリにバグ報告を送信する際に MRE を作成する方法について説明します。
問題の切り分け#
MRE作成の最初のステップは、問題を切り分けることです。問題と直接関係のない不要なコードや依存関係を削除してください。問題を引き起こしている特定のコード部分に焦点を当て、関連のない箇所は排除します。
公開されているモデルとデータセットの使用#
MRE を作成する際は、公開されているモデルとデータセットを使用して問題を再現してください。たとえば、yolo26n.pt モデルと coco8.yaml データセットを使用します。これにより、メンテナーやコントリビューターが、独自データやカスタムモデルへのアクセスを必要とせずに、あなたの例を簡単に実行して問題を調査できるようになります。
必要な依存関係をすべて含める#
MREに必要な依存関係がすべて含まれていることを確認してください。コードが外部ライブラリに依存している場合は、必要なパッケージとそのバージョンを指定してください。理想的には、ultralyticsがインストールされている場合はyolo checksを使用して、その他のツールの場合はpip listを使用して、バグレポートに依存関係をリストアップしてください。
問題の明確な説明の記述#
発生している問題について、明確かつ簡潔な説明を提供してください。期待される動作と、実際に発生している動作を説明します。該当する場合は、関連するエラーメッセージやログを含めてください。
コードの適切なフォーマット#
課題の説明において、コードブロックを使用してコードを適切にフォーマットしてください。これにより、他者がコードを読み取り理解しやすくなります。GitHubでは、トリプルバッククォート (```) でコードを囲み、言語を指定することでコードブロックを作成できます。
```python
# Your Python code goes here
```MREのテスト#
MREを提出する前に、それが問題を正確に再現できるかテストしてください。他者が修正を加えることなく、問題なく例を実行できることを確認してください。
MREの例#
以下は、仮のバグ報告におけるMREの例です。
バグの説明:
0チャンネル画像で推論を実行すると、入力テンソルの次元に関連するエラーが発生します。
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)エラーメッセージ:
RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead依存関係:
torch==2.3.0ultralytics==8.2.0
この例では、MRE は最小限のコードで問題を示し、パブリックモデル ("yolo26n.pt") を使用し、必要なすべての依存関係を含め、問題の明確な説明とエラーメッセージを提供しています。
これらのガイドラインに従うことで、Ultralytics YOLO リポジトリのメンテナーおよびコントリビューターがあなたの問題をより効率的に理解し解決するのに役立ちます。
よくある質問 (FAQ)#
Ultralytics YOLO リポジトリでのバグ報告のために、効果的な最小限の再現可能な例 (MRE) を作成するにはどうすればよいですか?#
Ultralytics YOLO リポジトリでのバグ報告のために効果的なMREを作成するには、以下の手順に従ってください。
- 問題の切り分け: 問題と直接関係のないコードや依存関係を削除します。
- 公開されているモデルとデータセットの使用: 再現性を高めるために、
yolo26n.ptやcoco8.yamlなどのパブリックリソースを利用します。 - 必要なすべての依存関係を含める: 必要なパッケージとそのバージョンを指定します。
ultralyticsがインストールされている場合はyolo checksを使用して、その他のツールの場合はpip listを使用して、依存関係をリストアップできます。 - 問題の明確な説明の記述: 期待される動作と実際の動作を、エラーメッセージやログを含めて説明します。
- コードの適切なフォーマット: コードブロックを使用してコードをフォーマットし、読みやすくします。
- MREのテスト: MREが修正なしで問題を再現することを確認します。
詳細なガイドについては、Creating a Minimum Reproducible Example を参照してください。
Ultralytics YOLO のバグ報告のMREに、なぜ公開されているモデルやデータセットを使用する必要があるのですか?#
MRE で公開されているモデルとデータセットを使用すると、メンテナーが専有データへのアクセスを必要とせずに、あなたの例を簡単に実行できるようになります。これにより、より迅速で効率的な問題解決が可能になります。たとえば、yolo26n.pt モデルと coco8.yaml データセットを使用すると、デバッグプロセスを標準化および簡素化するのに役立ちます。パブリックモデルとデータセットの詳細については、Use Public Models and Datasets セクションを参照してください。
Ultralytics YOLO のバグ報告にはどのような情報を含めるべきですか?#
Ultralytics YOLO の包括的なバグ報告には、以下を含める必要があります。
- 明確な説明: 問題、期待される動作、実際の動作を説明する。
- エラーメッセージ: 関連するエラーメッセージやログを含める。
- 依存関係: 必要な依存関係とそのバージョンをリストアップする。
- MRE: 最小限の再現可能な例を提供する。
- 再現手順: 問題を再現するために必要な手順を概説する。
完全なチェックリストについては、Write a Clear Description of the Issue セクションを参照してください。
GitHubでバグ報告を提出する際、どのようにコードを適切にフォーマットできますか?#
GitHubでバグ報告を提出する際、コードを適切にフォーマットするには以下のようにします。
- トリプルバッククォート (```) を使用してコードブロックを作成します。
- シンタックスハイライトのためにプログラミング言語を指定します(例: ```python)。
- 読みやすさのために、コードが正しくインデントされていることを確認します。
例:
```python
# Your Python code goes here
```コードのフォーマットに関するその他のヒントについては、Format Your Code Properly を参照してください。
バグ報告のためにMREを提出する前に確認すべき一般的なエラーにはどのようなものがありますか?#
MREを提出する前に、必ず以下を確認してください。
- 問題が再現可能であることを検証する。
- すべての依存関係がリストされており、正しいことを確認する。
- 不要なコードを削除する。
- MREをテストし、修正なしで問題が再現することを確認する。
詳細なチェックリストについては、Test Your MRE セクションをご覧ください。