normalize¶
该接口使用 \(L_p\) 范数沿维度 axis
对 x
进行归一化。计算公式如下:
\[y = \frac{x}{ \max\left( \lvert \lvert x \rvert \rvert_p, epsilon\right) }\]
\[\lvert \lvert x \rvert \rvert_p = \left(\sum_i {\lvert x_i\rvert^p} \right)^{1/p}\]
其中 \(\sum_i{\lvert x_i\rvert^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
相同。
代码示例¶
import numpy as np
import paddle
import paddle.nn.functional as F
x = np.arange(6, dtype=np.float32).reshape(2,3)
x = paddle.to_tensor(x)
y = F.normalize(x)
print(y)
# [[0. 0.4472136 0.8944272 ]
# [0.42426404 0.5656854 0.7071067 ]]
y = F.normalize(x, p=1.5)
print(y)
# [[0. 0.40862012 0.81724024]
# [0.35684016 0.4757869 0.5947336 ]]
y = F.normalize(x, axis=0)
print(y)
# [[0. 0.24253564 0.37139067]
# [1. 0.97014254 0.9284767 ]]