batch_norm
- paddle.nn.functional. batch_norm ( x, running_mean, running_var, weight=None, bias=None, training=False, momentum=0.9, epsilon=1e-05, data_format='NCHW', use_global_stats=None, name=None ) [源代码]
对输入数据进行批归一化(Batch Normalization),详见论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 。
推荐使用 nn.BatchNorm1D,nn.BatchNorm2D, nn.BatchNorm3D,由内部调用此方法。
详情见 BatchNorm1D 。
参数
x (Tensor) - 输入,数据类型为 float32, float64。
running_mean (Tensor) - 运行均值。
running_var (Tensor) - 运行方差。
weight (Tensor,可选) - batch_norm 权重的 Tensor,默认为 None。
bias (Tensor,可选) - batch_norm 偏置的 Tensor,默认为 None。
training (bool,可选) - 如果为 True,表示为训练模式,即使用批数据计算并在训练期间跟踪全局均值和方差。如果为 False,表示使用推理模式,即使用训练期间计算出的全局均值及方差计算。默认值为 False。
momentum (float,可选) - 此值用于计算
moving_mean和moving_var。默认值:0.9。epsilon (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-5。
data_format (str,可选) - 指定输入数据格式,可以为 "NC"、"NCL"、"NCHW"、"NCDHW"、"NLC"、"NHWC" 或 "NDHWC",其中 N 是批大小,C 是通道数,D 是特征深度,H 是特征高度,W 是特征宽度,L 是特征长度。默认值为 "NCHW"。
use_global_stats (bool|None,可选) - 指示是否使用全局均值和方差。若设置为 False,则使用一个 mini-batch 的统计数据。若设置为 True,则使用全局统计数据。若设置为 None,则在测试阶段使用全局统计数据,在训练阶段使用一个 mini-batch 的统计数据。默认值为 None。
name (str|None,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。
返回
无
代码示例
>>> import paddle
>>> x = paddle.arange(12, dtype="float32").reshape([2, 1, 2, 3])
>>> print(x)
Tensor(shape=[2, 1, 2, 3], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[[0. , 1. , 2. ],
[3. , 4. , 5. ]]],
[[[6. , 7. , 8. ],
[9. , 10., 11.]]]])
>>> running_mean = paddle.to_tensor([0], dtype="float32")
>>> running_variance = paddle.to_tensor([1], dtype="float32")
>>> weight = paddle.to_tensor([2], dtype="float32")
>>> bias = paddle.to_tensor([1], dtype="float32")
>>> batch_norm_out = paddle.nn.functional.batch_norm(
... x,
... running_mean,
... running_variance,
... weight,
... bias,
... )
>>> print(batch_norm_out)
Tensor(shape=[2, 1, 2, 3], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[[1. , 2.99998999 , 4.99997997 ],
[6.99996996 , 8.99995995 , 10.99995041]]],
[[[12.99993992, 14.99992943, 16.99991989],
[18.99991035, 20.99990082, 22.99988937]]]])