BN-batch_normalizaton 批归一化
tensorflow函数
tf.nn
# 用于最中执行batch normalization的函数
tf.nn.batch_normalization(
x,
mean,
variance,
offset=None,
scale=1,
variance_epsilon,
name=None
)
x是inputs输入样本
mean是样本均值
variance是样本方差
offset是样本偏移量(加上一个转化值, 通常为None)
scale是缩放值(默认为1)
variance_epsilon是为了避免分母为0,添加的一个极小值
tf.layer
# 用于最中执行batch normalization的函数
tf.layers.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,
trainable=True,
name=None,
)
inputs:输入样本
axis:被归一的轴
momentum:平均值的动量
epsilon:避免分母为零
center:如果为True,则将beta的偏移量添加到标准化张量
scale:如果为True,则乘以gamma
beta_initializer:beta权重的初始值设定项
gamma_initializer:gamma权重的初始值设定项
moving_mean_initializer:平均值的初始化器
moving_variance_initializer:方差的初始值设定项
beta_regularizer:beta权重正则化器
gamma_regularizer:gamma权重的调节器
trainable:布尔值,如果为True,还将变量添加到图形集合,参见tf.variable
name:层的名称