卷积层后若叠加归一化操作,可以取消偏置的增设,因为归一化会数学上消除该偏置的效果

其参考案例:

1
2
3
4
5
nn.Sequential(
nn.Conv2d(in_ch, out_ch, kernel_size=3, padding=1, bias=False), # 去掉 bias
nn.BatchNorm2d(out_ch),
nn.ReLU(inplace=True)
)

这是在简单的网络上跑出的结果,基本导致 17% 左右的性能影响

此同样应当作为一个规范和标准,有益无害(理论上基本不会影响性能)


补注:

1.理论上其效果仍然需要做更多的实验(但可以猜测大型模型上效果提升不会那么显著):

大型模型、小型模型效率提升的比较,同时尽可能探究其效率变动的影响因素

显存上的变动和影响逻辑

最终模型表现的影响

2.理论上该理论可以拓展到整个网络,归一化前都可以去除偏置