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:

\[\begin{split}\displaylines{{\text{output} = \frac{x}{\sqrt{\text{max}(\parallel x_i \parallel^p , \epsilon)} } } \\ {\parallel x_i \parallel^p = (\sum_{i}^{}\left | x_i \right | ^p )^{1/p}} }\end{split}\]

where \(\epsilon\) is epsilon and \(\sum_{i}^{}\left | x_i \right | ^p\) calculates along the dimension axis.

Parameters
  • axis (Union[list(int), tuple(int), int]) – The starting axis for the input to apply the L2 Normalization. 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, \ldots)\). Data type must be float16 or float32.

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 neither float16 nor float32.

Supported Platforms:

Ascend GPU CPU

Examples

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