Ultralytics YOLO27:

创建用于错误报告的最小可复现示例#

Ultralytics YOLO 代码仓库提交错误报告时,提供一个最小可复现示例 (MRE)至关重要。MRE 是一小段自包含代码,用于演示你遇到的问题。提供 MRE 有助于维护者和贡献者理解问题并更高效地修复问题。本指南介绍了向 Ultralytics YOLO 代码仓库提交错误报告时如何创建 MRE。

1. 隔离问题#

创建 MRE 的第一步是隔离问题。删除所有与问题没有直接关系的不必要代码或依赖项。专注于导致问题的具体代码部分,并移除所有无关部分。

2. 使用公开模型和数据集#

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

3. 包含所有必要的依赖项#

确保 MRE 包含所有必要的依赖项。如果代码依赖外部库,请指定所需软件包及其版本。理想情况下,如果你已安装 ultralytics,请在错误报告中使用 yolo checks 列出依赖项;对于其他工具,则使用 pip list

4. 清晰描述问题#

清晰、简洁地描述你遇到的问题。说明预期行为以及实际出现的行为(如适用),并附上相关错误消息或日志。

5. 正确格式化代码#

在问题描述中使用代码块正确格式化代码。这样便于他人阅读和理解你的代码。在 GitHub 中,你可以使用三个反引号包裹代码来创建代码块(```),并指定语言:

```python
# Your Python code goes here
```

6. 测试 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.8.0
  • ultralytics==8.4.142

在此示例中,MRE 使用最少量的代码演示了问题,使用公开模型("yolo26n.pt"),包含所有必要的依赖项,并在错误消息之外清晰描述了问题。

遵循这些指南,你将帮助 Ultralytics YOLO 代码仓库的维护者和贡献者更高效地理解并解决你的问题。

常见问题#

  • 要为 Ultralytics YOLO 代码仓库中的错误报告创建有效的最小可复现示例 (MRE),请遵循以下步骤:

    1. 隔离问题:删除所有与问题没有直接关系的代码或依赖项。
    2. 使用公开模型和数据集:使用 yolo26n.ptcoco8.yaml 等公开资源,以便更轻松地复现问题。
    3. 包含所有必要的依赖项:指定所需软件包及其版本。如果你已安装 ultralytics,可以使用 yolo checks 列出依赖项;对于其他工具,则使用 pip list
    4. 清晰描述问题:说明预期行为和实际行为,包括任何错误消息或日志。
    5. 正确格式化代码:使用代码块格式化代码,使其更易于阅读。
    6. 测试 MRE:确保 MRE 无需修改即可复现问题。

    如需详细指南,请参阅创建最小可复现示例

  • 在 MRE 中使用公开可用的模型和数据集,可以确保维护者无需访问专有数据即可轻松运行你的示例,从而更快速、更高效地解决问题。例如,使用 yolo26n.pt 模型和 coco8.yaml 数据集,有助于标准化并简化调试过程。请在使用公开模型和数据集部分了解更多信息。

  • 完整的 Ultralytics YOLO 错误报告应包含:

    • 清晰描述:说明问题、预期行为和实际行为。
    • 错误消息:附上相关错误消息或日志。
    • 依赖项:列出所需依赖项及其版本。
    • MRE:提供一个最小可复现示例。
    • 复现步骤:概述复现问题所需的步骤。

    如需完整检查清单,请参阅清晰描述问题部分。

  • 在 GitHub 上提交错误报告时,要正确格式化代码:

    • 使用三个反引号(```)创建代码块。
    • 指定用于语法高亮的编程语言,例如 ```python。
    • 确保代码正确缩进,以提高可读性。

    示例:

    ```python
    # Your Python code goes here
    ```

    如需了解更多代码格式化技巧,请参阅正确格式化代码

  • 提交 MRE 前,请确保:

    • 确认问题可以复现。
    • 确保所有依赖项均已列出且正确。
    • 删除所有不必要的代码。
    • 测试 MRE,确保无需修改即可复现问题。

    如需详细检查清单,请访问测试 MRE部分。

评论