バグレポートのための最小限の再現可能な例の作成
Ultralytics YOLOリポジトリのバグレポートを送信する際は、最小再現可能例(MRE)を提供することが不可欠です。MREは、発生している問題を実証する、小さく自己完結型のコードです。MREを提供することで、メンテナとコントリビュータが問題を理解し、より効率的に修正に取り組むことができます。このガイドでは、Ultralytics YOLOリポジトリにバグレポートを送信する際にMREを作成する方法について説明します。
1. 問題の特定
MREを作成する最初のステップは、問題を切り分けることです。問題に直接関係のない不要なコードや依存関係を削除します。問題の原因となっているコードの特定の部分に焦点を当て、無関係なセクションを削除します。
2. 公開されているモデルとデータセットの使用
MREを作成する際は、問題を再現するために、公開されているモデルとデータセットを使用してください。たとえば、以下を使用します。 yolov8n.pt
モデルと coco8.yaml
dataset を含めるようにしてください。これにより、メンテナーとコントリビューターは、独自のデータやカスタムモデルにアクセスする必要なく、簡単に例を実行して問題を調査できます。
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)を作成するには、次の手順に従ってください。
- 問題を切り分ける:問題に直接関係のないコードや依存関係を削除します。
- 公開モデルとデータセットを使用する:次のようなパブリックリソースを活用します。
yolov8n.pt
およびcoco8.yaml
再現性を高めるため。 - 必要なすべての依存関係を含める: 必要なパッケージとそのバージョンを指定します。依存関係はを使用して一覧表示できます
yolo checks
もしあなたがultralytics
インストール済み、またはpip list
. - 問題の明確な説明を記述する: エラーメッセージやログを含め、期待される動作と実際の動作を説明します。
- コードを適切にフォーマットする: コードブロックを使用してコードをフォーマットし、読みやすくします。
- Test Your 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をテストして、変更なしで問題を再現できることを確認します。
詳細なチェックリストについては、最小限の再現可能な例をテストするセクションをご覧ください。