Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

difference result with different version mmdetection3d #1752

Closed
AndyYuan96 opened this issue Aug 22, 2022 · 4 comments
Closed

difference result with different version mmdetection3d #1752

AndyYuan96 opened this issue Aug 22, 2022 · 4 comments

Comments

@AndyYuan96
Copy link

Hi, I want to try transfusion with mmdet3d 1.0, and transfusion's repo use mmdet3d 0.11, and I copy the transfusion head and boxencoder to mmdet3d 1.0. But I can't reproduce the result with 1/5 data, when use mmdet3d 1.0, the performance drop about 2 point in map and nds. after some experiment, I find when I use init weight from mmdet3d 0.11 to train transfusion with mmdet3d 1.0, the performance don't drop. So I just don't why init function will have so much difference on detector, so I just wonder whether your guys have any advise?
the init function change comes from here: #378

@ZCMax
Copy link
Collaborator

ZCMax commented Aug 22, 2022

To unify the parameter initialization in OpenMMLab projects, MMCV supports BaseModule that accepts init_cfg to allow the modules' parameters initialized in a flexible and unified manner. Now the users need to explicitly call model.init_weights() in the training script to initialize the model (as in here, previously this was handled by the detector. Please refer to PR #622 for details. Did you use BaseModule instead of nn.Module while migrating the transfusion head and boxencoder to mmdet3d 1.0?

@AndyYuan96
Copy link
Author

To unify the parameter initialization in OpenMMLab projects, MMCV supports BaseModule that accepts init_cfg to allow the modules' parameters initialized in a flexible and unified manner. Now the users need to explicitly call model.init_weights() in the training script to initialize the model (as in here, previously this was handled by the detector. Please refer to PR #622 for details. Did you use BaseModule instead of nn.Module while migrating the transfusion head and boxencoder to mmdet3d 1.0?

no, I don't use base module instead of nn.module. and I think it's not related to that, as after I change the default init cfg=None of second and secondfpn, and use mmdet3d 0.11's init_weight function, the loss curve looks right, it's almost the same with mmdet3d 0.11's loss curve. but with mmdet3d 1.0's init_cfg of second and second fpn, the loss curve is always higher than mmdet3d0.11.

@BoomSky0416
Copy link

@AndyYuan96 Hello, I encountered the same performance drop during reproducing transfusion in the latest mmdet3d. Could you show me how to modify the initialization of second and secondfpn? Thanks!

@xtk8532704
Copy link

I also encountered the same problem when reproducing transfusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants