PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.56k stars 2.86k forks source link

cascade_rcnn无输出 #2823

Open sxlyiyiyi opened 3 years ago

sxlyiyiyi commented 3 years ago

使用cascade_rcnn网络训练自己的数据,训练过程有loss,但是使用eval时,输出均为0

sxlyiyiyi commented 3 years ago

{'bbox': Tensor(shape=[1, 6], dtype=float32, place=CUDAPlace(0), stop_gradient=True, [[-1., 0., 0., 0., 0., 0.]]), 'bbox_num': Tensor(shape=[1], dtype=int32, place=CUDAPlace(0), stop_gradient=True, [1])}

liuhuiCNN commented 3 years ago

(1)这个数据应该是在检测结果为空时,构造的假数据。说明您训练的模型没有收敛,请您再仔细检查一下数据格式是否正确,模型参数设置是否合理。

sxlyiyiyi commented 3 years ago

我发现body_feats的输出均为nan,但是计算的rois,rois_num, rpn_loss确是有值的,请问是数据的问题,还是学习率的问题

sxlyiyiyi commented 3 years ago

image

sxlyiyiyi commented 3 years ago

image

sxlyiyiyi commented 3 years ago

不是学习率的问题,我测试了一下,训练到第二个batch就会变为nan,配置又使用了cascade_rcnn_r50_vd_fpn_ssld_2x_coco.yml尝试了下,只是更换了我的数据集,这是不是说明有大概率是数据集的格式问题

sxlyiyiyi commented 3 years ago

{"images": [{"file_name": "u000711.jpg", "height": 2160.0, "width": 3840.0, "id": 0}, {"file_name": "u005430.jpg", "height": 2160.0, "width": 3840.0, "id": 1},

"type": "instances", "annotations": [{"area": 73840.0, "iscrowd": 0, "bbox": [820.0, 1235.0, 355.0, 208.0], "category_id": 3, "ignore": 0, "image_id": 0, "id": 1}, {"area": 4532.0, "iscrowd": 0, "bbox": [2722.0, 9.0, 103.0, 44.0], "category_id": 3, "ignore": 0, "image_id": 0, "id": 2}

liuhuiCNN commented 3 years ago

(1)数据问题排查,将您的数据替换为coco或者是路标数据集,类别数设置正确,训练一下看看。如果其他数据可以正常训练说明您的数据可能是有问题的; (2)注意设置正确的学习率,配置文件中提供的学习率默认是8卡的,如果您是单卡,需要同比例减小学习率。

sxlyiyiyi commented 3 years ago

减小过学习率,都是从第二个或第三个变为nan,请问body_feats为nan是正常的吗,更换了其他的数据集,还是这种现象,更换的数据集是正确的格式