spnv2 icon indicating copy to clipboard operation
spnv2 copied to clipboard

EFFICIENTDET_PHI and Backbone name

Open ammaccabanane95 opened this issue 1 year ago • 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

ammaccabanane95 avatar Sep 19 '24 07:09 ammaccabanane95

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.

tpark94 avatar Sep 22 '24 02:09 tpark94