Why remove identity branch in RepConv?
xingguang12 opened this issue · comments
Search before asking
- I have searched the DAMO-YOLO issues and found no similar feature requests.
Description
When I saw your code carefully, I found something deifferent between your code with RepVGGBlock( https://github.com/DingXiaoH/RepVGG/blob/main/repvgg.py )
when out_channels == in_channels , identity branch will exist,
Why remove identity branch in RepConv? why remove this identity branch ? Is this op will improve the accuracy or some how?
I want to konw this, please tell me ,thanks a lot
Use case
No response
Additional
No response
Are you willing to submit a PR?
- Yes I'd like to help by submitting a PR!
sorry this is a question , I choose enhancement option.
In my view , this may reduce precision
Thanks for your attention to DAMO-YOLO. By analyzing the combination and corresponding performance of RepConv and different architectures, we find that the identity connection in RepConv will destroy the residual in ResNet and the concatenation in DenseNet. In our backbone and Neck, we have many res-link and concatenation OP, therefore, we remove identity branch in RepConv, the accuracy also improves as we expect.
Thanks for your attention to DAMO-YOLO. By analyzing the combination and corresponding performance of RepConv and different architectures, we find that the identity connection in RepConv will destroy the residual in ResNet and the concatenation in DenseNet. In our backbone and Neck, we have many res-link and concatenation OP, therefore, we remove identity branch in RepConv, the accuracy also improves as we expect.
Thank you for your generous answer,I will try to add some identity connection to DAMO-YOLO to see the experimental effect