Link to this sectionバグ報告のための最小限の再現可能な例の作成#
Ultralytics YOLO リポジトリにバグ報告を提出する際は、最小限の再現可能な例 (MRE) を提供することが不可欠です。MREとは、発生している問題を実証するための、小規模で自己完結型のコードのことです。MREを提供することで、メンテナーやコントリビューターが問題を理解し、より効率的に修正に取り組めるようになります。本ガイドでは、Ultralytics YOLO リポジトリにバグ報告を行う際にMREを作成する方法を解説します。
Link to this section問題の切り分け#
MRE作成の最初のステップは、問題を切り分けることです。問題と直接関係のない不要なコードや依存関係を削除してください。問題を引き起こしている特定のコード部分に焦点を当て、関連のない箇所は排除します。
Link to this section公開されているモデルとデータセットの使用#
MREを作成する際は、問題を再現するために公開されているモデルとデータセットを使用してください。例えば、yolo26n.pt モデルや coco8.yaml データセットを使用します。これにより、メンテナーやコントリビューターが独自のデータやカスタムモデルにアクセスすることなく、簡単に例を実行して問題を調査できるようになります。
Link to this section必要な依存関係をすべて含める#
Ensure all necessary dependencies are included in your MRE. If your code relies on external libraries, specify the required packages and their versions. Ideally, list the dependencies in your bug report using yolo checks if you have ultralytics installed or pip list for other tools.
Link to this section問題の明確な説明の記述#
発生している問題について、明確かつ簡潔な説明を提供してください。期待される動作と、実際に発生している動作を説明します。該当する場合は、関連するエラーメッセージやログを含めてください。
Link to this sectionコードの適切なフォーマット#
課題の説明において、コードブロックを使用してコードを適切にフォーマットしてください。これにより、他者がコードを読み取り理解しやすくなります。GitHubでは、トリプルバッククォート (```) でコードを囲み、言語を指定することでコードブロックを作成できます。
```python
# Your Python code goes here
```Link to this sectionMREのテスト#
MREを提出する前に、それが問題を正確に再現できるかテストしてください。他者が修正を加えることなく、問題なく例を実行できることを確認してください。
Link to this sectionMREの例#
以下は、仮のバグ報告における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 リポジトリのメンテナーや コントリビューター が問題をより効率的に理解し解決する手助けとなります。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralytics YOLO リポジトリでのバグ報告のために、効果的な最小限の再現可能な例 (MRE) を作成するにはどうすればよいですか?#
Ultralytics YOLO リポジトリでのバグ報告のために効果的なMREを作成するには、以下の手順に従ってください。
- 問題の切り分け: 問題と直接関係のないコードや依存関係を削除します。
- 公開されているモデルとデータセットの使用: 再現性を高めるために、
yolo26n.ptやcoco8.yamlのような公開リソースを活用します。 - Include All Necessary Dependencies: Specify required packages and their versions. You can list dependencies using
yolo checksif you haveultralyticsinstalled orpip list. - 問題の明確な説明の記述: 期待される動作と実際の動作を、エラーメッセージやログを含めて説明します。
- コードの適切なフォーマット: コードブロックを使用してコードをフォーマットし、読みやすくします。
- MREのテスト: MREが修正なしで問題を再現することを確認します。
詳細なガイドについては、最小限の再現可能な例の作成 を参照してください。
Link to this sectionUltralytics YOLO のバグ報告のMREに、なぜ公開されているモデルやデータセットを使用する必要があるのですか?#
MREに公開されているモデルとデータセットを使用することで、メンテナーは独自のデータにアクセスすることなく、容易にあなたの例を実行できます。これにより、問題解決が迅速かつ効率的になります。例えば、yolo26n.pt モデルと coco8.yaml データセットを使用することは、デバッグプロセスを標準化し簡素化するのに役立ちます。公開モデルとデータセットの詳細については、公開されているモデルとデータセットの使用 セクションを参照してください。
Link to this sectionUltralytics YOLO のバグ報告にはどのような情報を含めるべきですか?#
Ultralytics YOLO の包括的なバグ報告には、以下を含める必要があります。
- 明確な説明: 問題、期待される動作、実際の動作を説明する。
- エラーメッセージ: 関連するエラーメッセージやログを含める。
- 依存関係: 必要な依存関係とそのバージョンをリストアップする。
- MRE: 最小限の再現可能な例を提供する。
- 再現手順: 問題を再現するために必要な手順を概説する。
完全なチェックリストについては、問題の明確な説明の記述 セクションを参照してください。
Link to this sectionGitHubでバグ報告を提出する際、どのようにコードを適切にフォーマットできますか?#
GitHubでバグ報告を提出する際、コードを適切にフォーマットするには以下のようにします。
- トリプルバッククォート (```) を使用してコードブロックを作成します。
- シンタックスハイライトのためにプログラミング言語を指定します(例: ```python)。
- 読みやすさのために、コードが正しくインデントされていることを確認します。
例:
```python
# Your Python code goes here
```コードフォーマットに関するその他のヒントについては、コードの適切なフォーマット を参照してください。
Link to this sectionバグ報告のためにMREを提出する前に確認すべき一般的なエラーにはどのようなものがありますか?#
MREを提出する前に、必ず以下を確認してください。
- 問題が再現可能であることを検証する。
- すべての依存関係がリストされており、正しいことを確認する。
- 不要なコードを削除する。
- MREをテストし、修正なしで問題が再現することを確認する。
詳細なチェックリストについては、MREのテスト セクションにアクセスしてください。