renorm

paddle. renorm ( x, p, axis, max_norm ) [源代码]

此操作用于沿指定轴计算 p 范数(p-norm),假设指定轴维度的形状值为 T,则将张量分为 T 个部分,每个部分都计算 p 范数。如果第 i 部分的 p-norm 大于 max-norm,则第 i 部分中的每个元素应以相同的比例重新归一化,以使第 i 部分的 p-norm 完全等于 max-norm;否则,第 i 部分保持不变。

参数

  • x (Tensor) - 输入张量

  • p (float) - 范数运算的幂。

  • axis (int) - 对张量进行切片的维度。

  • max-norm (float) - 最大范数限制。

返回

Tensor,经过 renorm 处理的张量。

代码示例

>>> import paddle
>>> input = [[[2.0, 2, -2], [3, 0.3, 3]],
...          [[2, -8, 2],   [3.1, 3.7, 3]]]
>>> x = paddle.to_tensor(input,dtype='float32')
>>> y = paddle.renorm(x, 1.0, 2, 2.05)
>>> print(y)
Tensor(shape=[2, 2, 3], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[ 0.40594056,  0.29285714, -0.41000000],
  [ 0.60891086,  0.04392857,  0.61500001]],
 [[ 0.40594056, -1.17142856,  0.41000000],
  [ 0.62920785,  0.54178572,  0.61500001]]])