- 先做normalization再做activation
- batch 要大
- 梯度是会传到μ和方差并进一步传到W的,也就是说,多了一条back_propagation的路径到达W
- 在test 的时候,μ和方差得到的方式和train是不一样的,train的时候是每个batch的均值和方差,而test的时候取的μ和方差是train的时候的均值和方差的滑动平均
- batch normalization对training的帮助比较大而对test帮助比较小,所以当train没问题,test有问题的时候,往往batch normalization是很难提供提升的
- sigmoid不加batch normalization是train不起来的,BN解决了梯度弥散的问题
其pytorch代码在这篇博文中讲得很好:
https://blog.csdn.net/LoseInVain/article/details/86476010