mindspore.ops.L2Normalize

class mindspore.ops.L2Normalize(axis=0, epsilon=1e-4)[源代码]

L2范数归一化算子。

该算子将对输入 x 在给定 axis 上的元素进行归一化。函数定义如下:

\[\displaylines{{\text{output} = \frac{x}{\sqrt{\text{max}( \sum_{i}^{}\left | x_i \right | ^2, \epsilon)}}}}\]

其中 \(\epsilon\) 表示 epsilon\(\sum_{i}^{}\left | x_i \right | ^2\) 表示计算输入 x 在给定 axis 上元素的平方和。

说明

在Ascend上,暂时不支持float64数据类型。

参数:
  • axis (Union[list(int), tuple(int), int],可选) - 指定计算L2范数的轴。默认值: 0

  • epsilon (float,可选) - 为了数值稳定性而引入的很小的浮点数。默认值: 1e-4

输入:
  • x (Tensor) - 计算归一化的输入。shape为 \((N, *)\) ,其中 \(*\) 表示任意的附加维度数。数据类型必须为float16、float32和float64。

输出:

Tensor,shape和数据类型与 x 的相同。

异常:
  • TypeError - axis 不是list、tuple或int。

  • TypeError - epsilon 不是float。

  • TypeError - x 不是Tensor。

  • TypeError - x 的数据类型不是float16、float32或float64。

  • ValueError - x 的维度不大于0。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> l2_normalize = ops.L2Normalize()
>>> x = Tensor(np.random.randint(-256, 256, (2, 3, 4)), mindspore.float32)
>>> output = l2_normalize(x)
>>> print(output.shape)
(2, 3, 4)