PyTorch-YOLOv3生成训练和验证曲线

时间:2020-01-29 05:45:00

标签: python machine-learning pytorch object-detection yolo

你好,再次stackoverflow!我非常感谢这个社区和有用的反馈。

我还有其他一些问题,希望有人可以帮助我。我正在使用https://github.com/eriklindernoren/PyTorch-YOLOv3

的PyTorch-YOLOv3的实现

我已经能够训练模型,但是现在我想生成训练/验证曲线。在训练期间,我获得了每个时期的指标,如下所示:

Epoch 1/3001 batch 0/8 Epoch 1/3001 batch 7/8

我正在尝试通过将这些指标记录到外部.csv文件并绘制这些值来生成指标(损耗,召回率,精度,准确性,mAP)与时期的关系图。

问题1 :有使用过YOLOv3的经验的人知道相关信息在哪里吗?我知道每个纪元的AP和mAP位于第二个图像的底部(纪元1/3001,批处理7/8)。我不确定在哪里可以找到相关的损耗,召回率和精度指标。

问题2 :有人知道YOLO第0层和第1层之间的区别吗?会分别绘制这些层中的度量标准来产生训练曲线和验证曲线吗?

问题3 :从两到三个月前,我开始收到以下警告,而不是获得纪元输出。

/pytorch/aten/src/ATen/native/IndexingUtils.h:20:用户警告:现在不建议使用dtype torch.uint8进行索引,请改用dtype torch.bool。

这不会影响培训,但是我想更新代码,以便此警告消失。有什么建议吗?

谢谢大家。

1 个答案:

答案 0 :(得分:1)

问题中提到了解决方案。确切的链接是:https://github.com/eriklindernoren/PyTorch-YOLOv3/issues/283

替换为utils:269

ByteTensor = torch.cuda.ByteTensor(如果pred_boxes.is_cuda则为torch.ByteTensor

使用: BoolTensor = torch.cuda.BoolTensor,如果pred_boxes.is_cuda则为torch.BoolTensor

第278、279行的用法 obj_mask = BoolTensor(nB,nA,nG,nG).fill_(0) noobj_mask = BoolTensor(nB,nA,nG,nG).fill_(1)