sshaoshuai / PointRCNN

PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud, CVPR 2019.
MIT License
1.71k stars 426 forks source link

A question about evaluating RCNN whlile training rcnn #62

Open qiqihaer opened 5 years ago

qiqihaer commented 5 years ago

This code is very beautiful. However, I meet a problem. I try to evaluate RCNN while training RCNN. I set the "--train_with_eval" to be "True", which is the flag in row 75 in "train_rcnn.py", and the "test_loader" is the flag in row 277 in "train_utils.py". And the program go into function "eval_epoch" in "train_utils.py". During inference, the "ret_dict" in row 189 in "rcnn_net.py" is not updated, so the "ret_dict" does not contain "cls_label". But the "cls_label" is used in calculating "rcnn_loss" in row 47 in "train_functions.py". My question is how to fix this error. Should I update "ret_dict" during evaluation or should I delete the loss calculation during evaluation. Thanks a lot!!!

sshaoshuai commented 5 years ago

Currently the code has some little problems with --train_with_eval, please use the separate evaluation codes as mentioned in the README.

gebawe commented 3 years ago

Hi @sshaoshuai and @qiqihaer

I have also encounter the same problem, did any of you fixed this?

I tried to debug the problem, and I found out that, when self.model.eval() is called during the 2nd stage(RCNN) validation stage, then the parameters such as "cls_label" and others are removed from the model -> ret_dict. I do not know why this is happening.

I look forward to hearing from you soon.