normalize

paddle.nn.functional. normalize ( x, p=2, axis=1, epsilon=1e-12, name=None ) [源代码]

该接口使用

normalize - 图1

范数沿维度 axisx 进行归一化。计算公式如下:

normalize - 图2

||x||p=(∑i|xi|p)1/p||x||p=(∑i|xi|p)1/p

其中 ∑i|xi|p∑i|xi|p 沿维度 axis 进行计算。

参数

  • x (Tensor) - 输入可以是N-D Tensor。数据类型为:float32、float64。

  • p (float|int, 可选) - 范数公式中的指数值。默认值:2

  • axis (int, 可选)- 要进行归一化的轴。如果 x 是1-D Tensor,轴固定为0。如果 axis < 0,轴为 x.ndim + axis。-1表示最后一维。

  • epsilon (float,可选) - 添加到分母上的值以防止分母除0。默认值为1e-12。

  • name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 Name

返回

Tensor, 输出的形状和数据类型和 x 相同。

抛出异常:

  • TypeError - 当参数 p 或者 axis 的类型不符合要求时。或者当参数 x 的类型或数据类型不符合要求时。

代码示例

  1. import numpy as np
  2. import paddle
  3. import paddle.nn.functional as F
  4. x = np.arange(6, dtype=np.float32).reshape(2,3)
  5. x = paddle.to_tensor(x)
  6. y = F.normalize(x)
  7. print(y)
  8. # [[0. 0.4472136 0.8944272 ]
  9. # [0.42426404 0.5656854 0.7071067 ]]
  10. y = F.normalize(x, p=1.5)
  11. print(y)
  12. # [[0. 0.40862012 0.81724024]
  13. # [0.35684016 0.4757869 0.5947336 ]]
  14. y = F.normalize(x, axis=0)
  15. print(y)
  16. # [[0. 0.24253564 0.37139067]
  17. # [1. 0.97014254 0.9284767 ]]