什么都不说 先粘 文档网址
https://www.tensorflow.org/versions/master/api_docs/python/tf/layers/batch_normalization
先吐槽一下tensorflow的文档实在是太过简单了。。。
tensorflow.layers.batch_normalization是集成了之前 tf.nn.moments 和tf.nn.batch_normalization两个方法
看看函数定义。。
batch_normalization(
inputs,
axis=-1,
momentum=0.99,
epsilon=0.001,
center=True,
scale=True,
beta_initializer=tf.zeros_initializer(),
gamma_initializer=tf.ones_initializer(),
moving_mean_initializer=tf.zeros_initializer(),
moving_variance_initializer=tf.ones_initializer(),
beta_regularizer=None,
gamma_regularizer=None,
training=False,
trainable=True,
name=None,
reuse=None,
renorm=False,
renorm_clipping=None,
renorm_momentum=0.99,
fused=False
)
我靠!!这么多参数如何是好。
对于简单的使用者(吃瓜群众,比如说鄙人),只需要设定好inputs和axis即可
对于inputs就是你要做BN的Tensor,没什么好说的。
第二个是 axis
由官方文档指出,只需要确定batch的维就可以了,比如说一般的conv layer输出的格式是[batch,width,high,channel],那么axis = 0。
如果在conv layer 设定了 data_format='channels_first' 那么数据的结构会变成[channels,batch,width,high],相应的 axis改成1.
that's all!!
鄙人才疏学浅,欢迎各路大神批评指点O(∩_∩)O