tpark94/spnv2

EFFICIENTDET_PHI and Backbone name

Opened this issue · 1 comments

Dear Dr. Park,
Thank you for your work and for your contribution to research.
From your paper (and the ones you cited) I understand that \phi is an hyperparameter to adjust the number of parameters of the Efficientdet network. However, I have to set an EFFICIENTDET_PHI parameter inside the configuration file and a backbone name (efficientdet_d0, efficientdet_d1 etc.). In your example in the folder "experiments", you set the same number for EFFICIENTDET_PHI (e.g = 3) and for backbone name (e.g efficientdet_d3) both in the case of \phi = 3 that \phi = 6 (efficientdet_d6). I do not understant whether setting a different value (e.g. EFFICIENTDET_PHI = 4 and efficientdet_d2) is a conceptual mistake.
Thank you for your attention,
Best regards

Antonio

Hello,

Thanks for your question. Looking back at the code, it seems MODEL.BACKBONE.NAME is irrelevant since the backbone is created using the EFFICIENTDET_PHI parameter, e.g.,

# Regular with BN (pretrained on ImageNet)
self.efficientnet = eval(f'efficientnet_b{cfg.MODEL.EFFICIENTDET_PHI}')(
    pretrained=True
)

or any other such instances in core/nets/backbone/efficientdet.py. It seems the backbone name is only used for recording purposes (e.g., on a console or as the directory name), so for example if you train with EFFICIENTDET_PHI=3, you would want to set the name as efficientdet_d3 so that the trained model is associated with the correct backbone name in your output/log directories. Beyond this, the backbone name is irrelevant, you can probably achieve the same with using just EFFICIENTDET_PHI parameter.

Please let me know if you find it relevant otherwise.