Batch Normalization的正确打开方式
Posted zb-ml
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Batch Normalization的正确打开方式相关的知识,希望对你有一定的参考价值。
这里有几个重要参数需要注意:
axis
的值取决于按照input
的哪一个维度进行BN,例如输入为channel_last
format,即[batch_size, height, width, channel]
,则axis
应该设定为4,如果为channel_first
format,则axis
应该设定为1.momentum
的值用在训练时,滑动平均的方式计算滑动平均值moving_mean
和滑动方差moving_variance
。 后面做更详细的说明。center
为True
时,添加位移因子beta
到该BN层,否则不添加。添加beta
是对BN层的变换加入位移操作。注意,beta
一般设定为可训练参数,即trainable=True
。scale
为True
是,添加缩放因子gamma
到该BN层,否则不添加。添加gamma
是对BN层的变化加入缩放操作。注意,gamma
一般设定为可训练参数,即trainable=True
。training
表示模型当前的模式,如果为True
,则模型在训练模式,否则为推理模式。要非常注意这个模式的设定,这个参数默认值为False
。如果在训练时采用了默认值False
,则滑动均值moving_mean
和滑动方差moving_variance
都不会根据当前batch的数据更新,这就意味着在推理模式下,均值和方差都是其初始值,因为这两个值并没有在训练迭代过程中滑动更新。
作者:Aspirinrin
链接:https://www.jianshu.com/p/437fb1a5823e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是关于Batch Normalization的正确打开方式的主要内容,如果未能解决你的问题,请参考以下文章
Layer Normalization和Batch Normalization
Batch Normalization批标准化是什么? | BN有啥用 | Batch Normalization是什么
tf.layers.batch_normalization 大测试错误