mindspore.ops.LpNorm
- class mindspore.ops.LpNorm(axis, p=2, keep_dims=False, epsilon=1e-12)[源代码]
返回输入Tensor的矩阵范数或向量范数。
\[output = sum(abs(input)**p)**(1/p)\]- 参数:
axis (int,list,tuple) - 指定计算范数的维度。
p (int,可选) - 范数的阶。默认值:2。
keep_dims (bool,可选) - 输出Tensor是否保留原有的维度。默认值:False。
epsilon (float,可选) - 添加到分母上的值,以确保数值稳定性。默认值:1e-12。
- 输入:
input (Tensor) - 输入Tensor。
- 输出:
Tensor,数据类型与 input 一致,其shape由 axis 决定。如果输入shape为 \((2, 3, 4)\) , axis 为 \([0, 1]\) ,则输出shape为 \((4,)\) 。
- 异常:
TypeError - 若 input 不是Tensor。
TypeError - 若 input 的数据类型不是float16或float32。
TypeError - 若 p 不是int。
TypeError - 若 axis 不是int、list或tuple。
TypeError - 若 axis 是list或tuple,但含有非int元素。
TypeError - 若 keep_dims 不是bool。
ValueError - 若 axis 的元素不在 \([-r, r)\) 范围内,其中 \(r\) 为 input 的秩。
ValueError - 若 axis shape长度大于 input shape长度。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> input_x = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32)) >>> op = ops.LpNorm(axis=[0, 1], p=2, keep_dims=False) >>> output = op(input_x) >>> print(output) [ 9.165152 10.954452]