跳至内容

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

提交错误报告时 Ultralytics YOLO 存储库,必须提供 最小可重复示例 (MRE)。MRE 是一小段独立的代码,用于演示您遇到的问题。提供 MRE 有助于维护者和贡献者了解问题并更有效地进行修复。本指南介绍了在向 Ultralytics YOLO 存储 库。

1.隔离问题

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

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

创建 MRE 时,请使用公开可用的模型和数据集来重现问题。例如,使用 yolov8n.pt model 和 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"部分。



创建于 2023-11-12,更新于 2024-07-04
作者:glenn-jocher(4)、IvorZhu331(1)

评论