tianzhi0549 / FCOS

FCOS: Fully Convolutional One-Stage Object Detection (ICCV'19)
https://arxiv.org/abs/1904.01355
Other
3.27k stars 630 forks source link

The reason why fine-tuning BN parameters of MobileNetV2 #256

Closed andgitchang closed 4 years ago

andgitchang commented 4 years ago

Hi, I am wondering the reason why used FrozenBN in ResNe(X)t configs, and instead adopting SyncBN to fine-tune BN params in MobileNetV2 settings? Does it due to the overall performance reason? If yes, then what makes the poor results? Another question is that: comparison with other SyncBn configs in MobileNetV2 section, does FCOS_bn_bs16_MNV2_FPN_1x mean that it used FrozenBn throughout the backbone? Many thanks.

tianzhi0549 commented 4 years ago

@andgitchang We follow the convention we froze the BN of ResNets. You can try to update them and it might result in improved performance. IIRC, for MobileNet-based modes, we always update the BN.

andgitchang commented 4 years ago

Thanks for your quick reply. To my second question, the config file FCOS_bn_bs16_MNV2_FPN_1x didn't adopt SyncBN. It implies that you updated BN params upon 2 imgs/gpu, inducing AP degradation concerns of small mini-batch size. So I raise this issue to confirm implementation details. It matters to my use case since I am lack of GPUs to adopt SyncBN setting :(

tianzhi0549 commented 4 years ago

@andgitchang yes. This model updates BN with the images on the same GPU.

andgitchang commented 4 years ago

Ok then. It is interesting that small mini-batch size regime gets competitive AP performance as well. Thanks for your kind explanations.