如何为Ultralytics YOLO提交有效的错误报告

在向Ultralytics YOLO提交错误报告时,提供一个最小可复现示例(MRE)是至关重要的。MRE是一个独立的代码片段,展示了遇到的问题。这有助于维护者和贡献者更有效地理解并修复问题。以下是创建MRE的步骤:

创建MRE的第一步是隔离问题。移除任何不直接相关的代码或依赖项。专注于引起问题的代码部分,并删除任何不相关的部分。

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

确保MRE中包含了所有必要的依赖项。如果代码依赖于外部库,指定所需的包和它们的版本。理想情况下,使用yolo checks列出依赖项,或者如果使用的是其他工具,使用pip list。

提供一个清晰简洁的问题描述。解释预期的行为和实际遇到的行为。如果适用,包括任何错误消息或相关日志。

使用代码块在问题描述中正确格式化代码。这使得其他人更容易阅读和理解代码。在GitHub上,可以通过使用三个反引号(```)并指定语言来创建代码块:

python # Python代码放在这里

在提交MRE之前,测试它以确保它准确地复现了问题。确保其他人可以在没有任何问题或修改的情况下运行示例。

MRE示例

以下是一个假设的错误报告的MRE示例:

错误描述:在执行0通道图像的推理时,收到了一个与输入张量尺寸相关的错误。

import torch from ultralytics import YOLO # 加载模型 model = YOLO("yolov8n.pt") # 加载一个0通道图像 image = torch.rand(1, 0, 640, 640) # 运行模型 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错误报告创建有效的最小可复现示例(MRE)?

要为Ultralytics YOLO错误报告创建有效的MRE,请遵循以下步骤:

  • 隔离问题:移除任何不直接相关的代码或依赖项。
  • 使用公共模型和数据集:使用如yolov8n.pt和coco8.yaml这样的公共资源以便于复现。
  • 包含所有必要的依赖项:指定所需的包和它们的版本。可以使用yolo checks列出依赖项,或者如果使用的是其他工具,使用pip list。
  • 清晰描述问题:解释预期的行为和实际行为,包括任何错误消息或日志。
  • 正确格式化代码:使用代码块格式化代码,使其更易于阅读。
  • 测试MRE:确保MRE可以无需修改地复现问题。

有关详细指南,请参考“创建最小可复现示例”部分。

为什么应该在Ultralytics YOLO错误报告的MRE中使用公共模型和数据集?

在MRE中使用公共模型和数据集可以确保维护者可以轻松地运行示例,而无需访问专有数据。这有助于快速有效地解决问题。例如,使用yolov8n.pt模型和coco8.yaml有助于标准化和简化调试过程。更多关于公共模型和数据集的信息,请参考“使用公共模型和数据集”部分。

应该在Ultralytics YOLO错误报告中包含哪些信息?

一个全面的Ultralytics YOLO错误报告应该包括:

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

有关完整检查列表,请参考“清晰描述问题”部分。

在GitHub上提交错误报告时,如何正确格式化代码?

在GitHub上提交错误报告时,正确格式化代码的方法是:

  • 使用三个反引号(```)创建代码块。
  • 指定编程语言以突出显示语法,例如```python。
  • 确保代码正确缩进,以便于阅读。

例如:

python # Python代码放在这里

有关代码格式化的更多提示,请参考“正确格式化代码”部分。

在提交MRE之前,应该检查哪些常见错误?

在提交MRE之前,请确保:

  • 问题可以被复现。
  • 所有依赖项都已列出且正确。
  • 移除任何不必要的代码。
  • 测试MRE以确保它无需修改即可复现问题。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485