question: have you ever tried to combine this method with ACNet?
If we replace the 3x3 conv with the convolution proposed with ACNet, are we expected to have further improvements on the test set ?
We have not tried that. But we are working to release ACNet v2 (Diverse Branch Block, also accepted by CVPR 2021, https://github.com/DingXiaoH/DiverseBranchBlock). We will try combining them very soon.
@DingXiaoH Thanks for replying !!! I have another question:
We can see from this line:
https://github.com/DingXiaoH/RepVGG/blob/a689eaf2c3d8f9d553328a4f7207c8b1a8f20933/repvgg.py#L33
that the identity branch is a nn.BatchNorm2d layer, which should learned a a * x + b mapping of each feature channel.
However, in the fusing process: https://github.com/DingXiaoH/RepVGG/blob/a689eaf2c3d8f9d553328a4f7207c8b1a8f20933/repvgg.py#L84 The values are all set to an constant value of 1.
Why not set these values to the as and bs learned by the bn layer ?
This kernel_value is a fake "1x1 conv" constructed just for the ease of merging the BN. Because y=x is equivalent to y=conv(x, identity_kernel) There is no such kernel in the block.
@DingXiaoH Thanks for telling this, I have made sense of it. By the ways, what is the arxiv index of acnetv2 ? I cannot find it by searching the title directly in google.
Working on it. Will be released very soon. https://github.com/DingXiaoH/DiverseBranchBlock
Hi,
I have another question about repvgg, did you use label-smooth/auto-augment or other regularization method to train repvgg_a0-a3, and repvgg_b0-b1 ?