阅读(10.7k) 书签 (0)

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:此操作的名称(可选).

返回:

标准化,缩放,偏移张量.