Faster RCNN loss_rpn_box_reg = nan分析

  • Post author:
  • Post category:其他


首先整体架构使用的是torchvision0.3版本自带的模块。所以找问题都是从自己写的代码开始。

自己架构是否有问题:

固定一下optimizer = torch.optim.SGD(model.parameters(), lr = lr, momentum=0.9, weight_decay=1e-2)


1:图像处理



根据官方给的手册归一化到了[0, 1]之间应该没问题,

2:

标签问题



target对应的标签信息确实对应的是bottle –>39,这也不是造成nan 的原因,通过测试程序发现不是

3:对于一张图片只有一个目标框的情况,发现IOU>0.7的目标框只有几个,剩下的基本上是由负文本框填充凑足256个,然后做回归loss,然而,这些也不是造成loss = nan 的原因, 因为当正样本达到一半的时候其实这时候对应的loss也会得到nan


4:数据问题:



5:不用shuffle

单个分析,看看是否是数据问题,看看是第几个出现的nan,如果把这个调换到第一个loss还会为loss吗

出来的第一个是loss = nan的结果是0000050.jpg,将0000050.jpg作为图片输出发现一开始就得到了nan 发现了一部分问题了,跟踪发现其实在target对应回回归值出现的nan,回归值中其实中心坐标点也不会出现nan的情况,出现nan的情况是对应的w,h对应的比例系数,这种是最容易出现问题的,最终找到问题,标注信息给错了,有的对应的xmin > xmax, ymin > ymax。

关键点:为什么只有 loss_rpn_box_reg = nan 而其他的都没有问题?

针对这个问题做出具体应对措施:

1:查看faster rcnn论文,仔细查看rpn loss 管理的是哪一块。

2:百度查出为什么会出现回归损失出现nan

3:



版权声明:本文为qq_33824968原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。