跳至内容

在Ultralytics YOLO Repositories 中为 Bug 报告创建最小可重现示例

提交错误报告时 UltralyticsYOLO时,必须提供一个最小可重现示例 (MRE)。MRE 是一小段独立的代码,用于演示您遇到的问题。提供 MRE 有助于维护者和贡献者了解问题,并更高效地开展修复工作。本指南介绍了在向Ultralytics YOLO 资源库提交错误报告时如何创建 MRE。

1.隔离问题

创建 MRE 的第一步是隔离问题。删除与问题无直接关系的任何不必要的代码或依赖项。重点关注导致问题的特定代码部分,并删除任何无关的部分。

2.使用公共模型和数据集

创建 MRE 时,使用公开可用的模型和数据集来重现问题。例如,使用 yolov8n.pt 模型和 coco8.yaml 数据集。这将确保维护者和贡献者可以轻松运行您的示例并调查问题,而无需访问专有数据或自定义模型。

3.包括所有必要的依赖项

确保 MRE 中包含所有必要的依赖项。如果您的代码依赖于外部库,请指定所需的软件包及其版本。最好在错误报告中使用 yolo checks 如果你有 ultralytics 安装或 pip list 用于其他工具。

4.撰写清晰的问题描述

简明扼要地描述您遇到的问题。解释您遇到的预期行为和实际行为。如果适用,请附上任何相关的错误信息或日志。

5.正确格式化代码

在问题描述中使用代码块正确格式化您的代码。这将使他人更容易阅读和理解您的代码。在 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.ptcoco8.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,确保它能在不修改的情况下重现问题。

如需详细清单,请访问 "测试您的 MRE"部分。

📅创建于 1 年前 ✏️已更新 3 个月前

评论