mindspore.ops.cond
- mindspore.ops.cond(A, p=None)[源代码]
返回给定Tensor的矩阵范数或向量范数。
p 为norm的计算模式。支持下列norm模式。
p
矩阵范数
向量范数
None
(默认值)2-norm (参考最下方公式)
2-norm (参考最下方公式)
'fro'
Frobenius norm
不支持
'nuc'
nuclear norm
不支持
inf
\(max(sum(abs(x), dim=1))\)
\(max(abs(x))\)
-inf
\(min(sum(abs(x), dim=1))\)
\(min(abs(x))\)
0
不支持
\(sum(x != 0)\)
1
\(max(sum(abs(x), dim=0))\)
参考最下方公式
-1
\(min(sum(abs(x), dim=0))\)
参考最下方公式
2
最大奇异值
参考最下方公式
-2
最小奇异值
参考最下方公式
其余int或float值
不支持
\(sum(abs(x)^{ord})^{(1 / ord)}\)
说明
当前暂不支持复数。
- 参数:
A (Tensor) - shape为 \((*, n)\) 或者 \((*, m, n)\) 的Tensor,其中*是零个或多个batch维度。 如果 p 是 Union[1, -1, inf, -inf, ‘fro’, ‘nuc’] 之一, 函数将使用
mindspore.ops.MatrixInverse
, 因此,\((*, m, n)\) 必须为方块矩阵并且可逆。p (Union[int, float, inf, -inf, ‘fro’, ‘nuc’], 可选) - norm的模式。行为参考上表。默认值:
None
。
- 返回:
Tensor,进行条件数计算的结果,与输入 A 的数据类型相同。
- 异常:
TypeError - A 是一个向量并且 p 是str类型。
ValueError - A 是一个矩阵并且 p 不是有效的取值。
ValueError - A 是一个矩阵并且 p 为一个取值不为[1, -1, 2, -2]之一的整型。
- 支持平台:
GPU
CPU
样例:
>>> import mindspore as ms >>> x = ms.Tensor([[1.0, 0.0, -1.0], [0.0, 1.0, 0.0], [1.0, 0.0, 1.0]]) >>> print(ms.ops.cond(x)) 1.4142 >>> print(ms.ops.cond(x, 'fro')) 3.1622777