mindspore.ops.renorm

mindspore.ops.renorm(input, p, axis, maxnorm)[source]

Renormalizes the sub-tensors along dimension axis, and each sub-tensor's p-norm should not exceed the maxnorm. The values of current sub-tensor don't need change if the p-norm of the sub-tensor is less than maxnorm. Otherwise the sub-tensor needs to be modified to the original value of the corresponding position divided by the p-norm of the substensor and then multiplied by maxnorm.

Parameters
  • input (Tensor) – A Tensor, types: float32 or float16.

  • p (int) – Power of norm calculation.

  • axis (int) – The dimension that expected to get the slice-tensor.

  • maxnorm (float32) – Max norm.

Returns

Tensor, has the same dtype and shape as input.

Raises
Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]]), mindspore.float32)
>>> y = ops.renorm(x, p=1, axis=0, maxnorm=5.)
>>> print(y)
[[1.       1.        1.        ]
[1.6666666 1.6666666 1.6666666 ]
[1.6666667 1.6666667 1.6666667 ]]