本文主要是介绍BatchNorm层的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
而第一步的规范化会将几乎所有数据映射到激活函数的非饱和区(线性区),仅利用到了线性变化能力,从而降低了神经网络的表达能力。而进行再变换,则可以将数据从线性区变换到非线性区,恢复模型的表达能力。
代码
def Batchnorm_simple_for_train(x, gamma, beta, bn_param):
"""
param:x : 输入数据,设shape(B,L)
param:gama : 缩放因子 γ
param:beta : 平移因子 β
param:bn_param : batchnorm所需要的一些参数eps : 接近0的数,防止分母出现0momentum : 动量参数,一般为0.9, 0.99, 0.999running_mean :滑动平均的方式计算新的均值,训练时计算,为测试数据做准备running_var : 滑动平均的方式计算新的方差,训练时计算,为测试数据做准备
"""ru
这篇关于BatchNorm层的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!