mindspore.ops.L2Normalize

class mindspore.ops.L2Normalize(axis=0, epsilon=0.0001)[source]

L2 Normalization Operator.

This operator will normalize the input using the given axis. The function is shown as follows:

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

where \(\epsilon\) is epsilon and \(\sum_{i}^{}\left | x_i \right | ^2\) calculate the sum of squares of the input x along the dimension axis.

Note

On Ascend, input data type of float64 is currently not supported.

Parameters
  • axis (Union[list(int), tuple(int), int]) – Specify the axis for calculating the L2 norm. Default: 0 .

  • epsilon (float) – A small value added for numerical stability. Default: 1e-4 .

Inputs:
  • x (Tensor) - Input to compute the normalization. Tensor of shape \((N, *)\), where \(*\) means any number of additional dimensions. Data type must be float16, float32 or float64.

Outputs:

Tensor, with the same type and shape as the x.

Raises
  • TypeError – If axis is not one of the following: list, tuple or int.

  • TypeError – If epsilon is not a float.

  • TypeError – If x is not a Tensor.

  • TypeError – If dtype of x is not in [float16, float32, float64].

  • ValueError – If dimension of x is not greater than 0.

Supported Platforms:

Ascend GPU CPU

Examples

>>> 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)