mindspore.ops.norm
- mindspore.ops.norm(A, ord=None, dim=None, keepdim=False, *, dtype=None)[源代码]
计算tensor的矩阵范数或向量范数。
ord 为norm的计算模式。支持下列norm模式。
ord
矩阵范数
向量范数
None (默认值)
Frobenius norm
2-norm (参考最下方公式)
'fro'
Frobenius norm
不支持
'nuc'
nuclear norm
不支持
inf
-inf
0
不支持
1
参考最下方公式
-1
参考最下方公式
2
最大奇异值
参考最下方公式
-2
最小奇异值
参考最下方公式
其余int或float值
不支持
- 参数:
A (Tensor) - 输入tensor。
ord (Union[int, float, inf, -inf, 'fro', 'nuc'], 可选) - 指定要采用的范数类型。默认
None
。dim (Union[int, Tuple(int)], 可选) - 指定计算维度。默认
None
。当 dim 为int时,计算向量范数。
当 dim 为一个二元组时,计算矩阵范数。
当 dim 为
None
且 ord 为None
,展平 A 为一维tensor并计算向量的2-范数。当 dim 为
None
且 ord 不为None
, A 必须为一维或者二维。
keepdim (bool) - 输出tensor是否保留维度。默认
False
。
- 关键字参数:
dtype (
mindspore.dtype
, 可选) - 返回的数据类型。如果设置此参数,则会在计算前将 A 转换为指定的类型。默认None
。
- 返回:
Tensor
说明
当前暂不支持复数。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> # Vector norms: >>> A = mindspore.tensor([3., 4., 12.]) >>> mindspore.ops.norm(A) Tensor(shape=[], dtype=Float32, value= 13) >>> mindspore.ops.norm(A, ord=1) Tensor(shape=[], dtype=Float32, value= 19) >>> mindspore.ops.norm(A, ord=0) Tensor(shape=[], dtype=Float32, value= 3) >>> >>> # Matrix norms: >>> A = mindspore.tensor([[1., 2., 3.], ... [4., 5., 7.]]) >>> mindspore.ops.norm(A) # Frobenius norm Tensor(shape=[], dtype=Float32, value= 10.198) >>> mindspore.ops.norm(A, ord='nuc') # nuclear norm Tensor(shape=[], dtype=Float32, value= 10.7625) >>> mindspore.ops.norm(A, ord=1) # 1-norm Tensor(shape=[], dtype=Float32, value= 10) >>> >>> # Batched vector norm: >>> mindspore.ops.norm(A, dim=1) Tensor(shape=[2], dtype=Float32, value= [ 3.74165726e+00, 9.48683262e+00])