mindspore.mint.nn.BatchNorm2d

查看源文件
class mindspore.mint.nn.BatchNorm2d(num_features: int, eps=1e-5, momentum=0.1, affine=True, track_running_stats=True, dtype=None)[源代码]

在四维输入上应用批归一化。具体内容见论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

\[y = \frac{x - \mathrm{E}[x]}{\sqrt{\mathrm{Var}[x] + \epsilon}} * \gamma + \beta\]

在mini-batch上按维度计算平均值和标准方差。\(\gamma\)\(\beta\) 是一个大小为 C 的可学习参数向量。 默认情况下,\(\gamma\) 中的元素被赋值为1。\(\beta\) 的元素则被赋值为0.

警告

该接口不支持动态Rank。 这是一个实验性API,后续可能修改或删除。

参数:
  • num_features (int) - 输入的shape \((N, C, H, W)\) 中的 C 值。

  • eps (float, 可选) - \(\epsilon\) 加在分母上的值,以确保数值稳定。默认值: 1e-5

  • momentum (float, 可选) - 动态均值和动态方差所使用的动量。当想计算累计平均值时,可设置为 None。默认值: 0.1

  • affine (bool, 可选) - bool类型。设置为 True 时,可学习到反射参数值。默认值: True

  • track_running_stats (bool, 可选) - bool类型。设置为 True 时,会跟踪运行时的均值和方差。当设置为 False 时, 则不会跟踪这些统计信息。且在tran和eval模式下,该cell总是使用batch的统计信息。

  • dtype (mindspore.dtype, 可选) - Parameters的dtype。默认值: None

输入:
  • input (Tensor) - 输入shape为 \((N, C, H, W)\)

输出:

Tensor,类型和shape与 input 一致。

异常:
  • TypeError - num_features 不是整数。

  • TypeError - eps 不是浮点数。

  • ValueError - num_features 小于1。

支持平台:

Ascend

样例:

>>> import mindspore
>>> from mindspore import Tensor, mint
>>> input_x = mindspore.Tensor([0.3, 0.4, 0.5, 0.3])
>>> input_x = input_x.reshape((2, 2, 1, 1))
>>> net = mint.nn.BatchNorm2d(2)
>>> output = net(input_x)
>>> print(output)
[[[[-0.99950075]]
  [[0.9980087]]]
  [[[0.999501]]
  [[-0.9980097]]]]