mask rcnn训练问题
收藏
使用mask rcnn训练自己的数据,自己的数据是用lableme标注并使用官方的文档转换的(https://github.com/wkentaro/labelme/tree/master/examples/instance_segmentation),但是训练过程是这样的:
2020-05-20 10:56:15.093832, iter: 1150, lr: 0.01000, 'loss': nan, 'loss_cls': nan, 'loss_bbox': nan, 'loss_rpn_cls': 0.094, 'loss_rpn_bbox': 0.003, 'loss_mask': 0.406, time: 0.292
2020-05-20 10:56:29.694689, iter: 1200, lr: 0.01000, 'loss': nan, 'loss_cls': nan, 'loss_bbox': nan, 'loss_rpn_cls': 0.09, 'loss_rpn_bbox': 0.003, 'loss_mask': 0.406, time: 0.284
2020-05-20 10:56:44.134379, iter: 1250, lr: 0.01000, 'loss': nan, 'loss_cls': nan, 'loss_bbox': nan, 'loss_rpn_cls': 0.094, 'loss_rpn_bbox': 0.006, 'loss_mask': 0.401, time: 0.295
loss_cls 和 loss_bbox都是nan
0
收藏
请登录后评论
是不是lr太大了导致loss发散了?
有可能,用0.001试一下。
如果有这种报错:RuntimeWarning: invalid value encountered in log targets_dw = np.log(gt_widths / ex_widths)。就可能是自制数据集的问题,有些框从左上角(0,0)开始的,减1会出现log(-1)的情况。打开lib/database/pascal_voc.py文件,将208行至211行每一行后面的-1删除。
x1 = float(bbox.find(‘xmin’).text)
y1 = float(bbox.find(‘ymin’).text)
x2 = float(bbox.find(‘xmax’).text)
y2 = float(bbox.find(‘ymax’).text)
nan已经发散了,没必要继续训练下去了
学习率要除以8,官方的示例是在8个节点上分布式训练的,在AI Studio上只有单节点
如果是用的是pd的模型的话,学习率要除8,官方是八卡训练的,但是平台上是单GPU