BN层学习

匿名 (未验证) 提交于 2019-12-03 00:18:01





uB=1mi=1mxi...(1)

σB2=1mi=1m(xiuB)2...(2)

xi=(xiuB)2σB2+...(3)

yi=γxi+β=BNγβ(xi)...(4)

γ和偏移系数β,从而使网络去学习输出的特征分布.在实际测试中,我们只输入一个测试样本时,此时没有mini batch这个概念了,其他参数如均值和标准差都是固定不变的,即测试时均值和标准差的公式为:
E[x]=EB[uB]...(5)

Var[x]=mm1EB[σB2]...(6)


y=γVar[x]+x+(βγE[x]Var[x]+)...(7)

def batch_normalization(x, mean, variance, offset, scale, variance_epsilon, name=None):

β(默认为0),scale是缩放系数γ(默认为1),variance_epsilon为,调用这个api就可以输出BN后的结果.
另一个实现BN操作的api是tf.contrib.layers.batch_norm()函数,详情可见:https://www.tensorflow.org/api_docs/python/tf/contrib/layers/batch_norm

参考:
1.https://blog.csdn.net/hjimce/article/details/50866313
2.https://zhuanlan.zhihu.com/p/26138673
3.https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-08-batch-normalization/

文章来源: BN层学习
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!