Traceback (most recent call last):
File “C:\Users\think\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\ops\script_ops.py”, line 157, in call
ret = func(*args)
File “D:\Faster-RCNN-TensorFlow-Python3.5-master\lib\layer_utils\proposal_target_layer.py”, line 47, in proposal_target_layer
rois_per_image, _num_classes)
File “D:\Faster-RCNN-TensorFlow-Python3.5-master\lib\layer_utils\proposal_target_layer.py”, line 135, in _sample_rois
raise Exception()
Exception
image invalid, skipping
研究一下报错信息是proposal_target_layer.py里的_sample_rois函数,因为
if fg_inds.size > 0 and bg_inds.size > 0:
fg_rois_per_image = min(fg_rois_per_image, fg_inds.size)
fg_inds = npr.choice(fg_inds, size=int(fg_rois_per_image), replace=False)
bg_rois_per_image = rois_per_image - fg_rois_per_image
to_replace = bg_inds.size < bg_rois_per_image
bg_inds = npr.choice(bg_inds, size=int(bg_rois_per_image), replace=to_replace)
elif fg_inds.size > 0:
to_replace = fg_inds.size < rois_per_image
fg_inds = npr.choice(fg_inds, size=int(rois_per_image), replace=to_replace)
fg_rois_per_image = rois_per_image
elif bg_inds.size > 0:
to_replace = bg_inds.size < rois_per_image
bg_inds = npr.choice(bg_inds, size=int(rois_per_image), replace=to_replace)
fg_rois_per_image = 0
else:
raise Exception()
报错原因是fg_inds和bg_inds的数量都小于0,这张图片没办法训练了,所以直接跳过这张图。办法是调整config.py里的
roi_bg_threshold_high和roi_bg_threshold_low,一般把roi_bg_threshold_low改成0.0就不会出现这个问题。