question about 'use_sigmoid' parameter
menggui1993 opened this issue · comments
I think the 'use_sigmoid' parameter is misused. In the original mmdetect setup, the 'use_sigmoid' parameter in the anchor_head is used to differ sigmoid head from softmax head. So, if you set use_sigmoid=False, there will be some changes, e.g. the cls_out_channels = num_classes+1(including the background class).
In your directory, 'use_sigmoid' is used to differ logits output from sigmoid output. It is mainly used in quality focal loss.
However, the anchor_head parameter of 'use_sigmoid' is read from the loss definition. So if you set it as False, there may be some unexpected changes for the head part.
Yes, your concern is right, but fortunately in our implementation (e.g., QFL) the additional logit for class channels is redundant and actually not used (at least it does not take effect) during inference. Therefore, the resulted performance keeps the same with ``cls_out_channels=num_classes" case, and we will modify this part of code for more clean and reasonable logic.
thanks for the clarification