mindspore.mint.nn.BatchNorm1d
- class mindspore.mint.nn.BatchNorm1d(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, L)\) 中的 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)\) 或 \((N, C, L)\) 的Tensor,其中 N 为batch, C 为特征数量或通道数量, L 为序列长度。
- 输出:
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.7, 0.5, 0.5, 0.6], [0.5, 0.4, 0.6, 0.9]]) >>> net = mint.nn.BatchNorm1d(4) >>> output = net(input_x) >>> print(output) [[ 0.99950075 0.9980011 -0.9980068 -0.9997783] [-0.9995012 -0.99799967 0.9980068 0.9997778]]