在训练faster rcnn的过程中使用的是自己制作的数据集,但是当训练迭代到120次的时候,出现了下面的错误:RuntimeWarning:invalid value encountered in log targets_dw = np.log(gt_widths / ex_widths)
百度了一下,发现正确的做法是修改tf-faster-rcnn/lib/datasets/pascal_voc.py(或者py-faster-rcnn-master/lib/datasets/pascal_voc.py)文件,大概在160行左右,将167行至171行每一行后面的-1删除。
据faster rcnn训练过程出现loss=nan解决办法这个博客说是因为自己制作的xml文件中有些框的坐标是从左上角开始的,也就是(0,0),如果再减一就会出现log(-1)的情况,所以就会出现loss=nan的问题了,如果还出现loss=nan,可以再试试调小学习率以及各个损失项的占比重。
因此当出现了RuntimeWarning的问题时有两种解决方案:
1、换数据集进行训练,如果没有这个问题,就说明确实是数据集的问题;
结论:可行,目前仅仅更换了训练数据集,正在训练中,已经迭代到了2万次,还没有出现这个错误!
2、修改pascal_voc.py文件,验证是否还会出现这个问题;