TensorFlow函数:tf.nn.batch_normalization
2019-01-31 11:29 更新
tf.nn.batch_normalization函数
tf.nn.batch_normalization(
x,
mean,
variance,
offset,
scale,
variance_epsilon,
name=None
)
定义在:tensorflow/python/ops/nn_impl.py.
请参阅指南:神经网络>规范化
批量标准化.
如http://arxiv.org/abs/1502.03167中所述.通过mean和variance来标准化张量,并对其应用(可选)scale\(\ gamma \),以及offset\(\ beta \):
\(\frac{\gamma(x-\mu)}{\sigma}+\beta\)
mean,variance,offset以及scale都应该是以下两种形状中的一种:
- 一般而言,它们可以具有与输入x相同数量的维度,对于未标准化的维度(“depth”维度)具有与x相同的大小,对于正在被标准化的维度,它们的大小与1相同.在这种情况下,mean和variance通常会是tf.nn.moments(..., keep_dims=True)训练期间的输出,或推理期间运行的平均值.
- 在“depth”维度是输入张量x中的最后维度的常见情况下,它们可以是与“depth”维度相同大小的一维张量.例如,对于完全连接的层的公共[batch, depth]和卷积的[batch, height, width, depth]布局就是这种情况.mean和variance在这种情况下通常会是tf.nn.moments(..., keep_dims=False)训练期间的输出,或推理期间运行的平均值.
参数:
- x:任意维度的输入Tensor.
- mean:一个平均Tensor.
- variance:一个方差Tensor.
- offset:一个偏移量Tensor,通常在方程式中表示为\(\ beta \),或者为None;如果存在,将被添加到归一化张量.
- scale:一个标度Tensor,通常在方程式中表示为\(\ gamma \),或为None;如果存在,则将比例应用于归一化张量.
- variance_epsilon:一个小的浮点数,以避免除以0.
- name:此操作的名称(可选).
返回:
标准化,缩放,偏移张量.