YOLO错误报告指南

在向UltralyticsYOLO仓库提交错误报告时,创建一个有效的最小可复现示例(MRE)至关重要。MRE是一个独立的代码片段,能够清楚地展示遇到的问题。这有助于维护者和贡献者理解问题并更高效地进行修复。以下是创建MRE的指南:

隔离问题

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

使用公共模型和数据集

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

包含所有必要的依赖项

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

编写清晰的问题描述

提供清晰、独立的問題描述。解释预期的行为和遇到的实际行为。如果可能,包括任何错误消息或相关日志。

正确格式化代码

python # Python代码放在这里

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

测试MRE

在提交错误报告之前,测试MRE以确保它准确地重现问题。确保其他人可以无问题或修改地运行例子。

示例MRE

以下是一个使用磁共振成像(MRI)的示例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"),包含了所有必要的依赖项,并提供了清晰的问题描述和错误消息。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485