mindspore.scipy.linalg.cholesky
- mindspore.scipy.linalg.cholesky(a, lower=False, overwrite_a=False, check_finite=True)[源代码]
计算矩阵的cholesky分解。
返回包含cholesky分解的矩阵,对于一个Hermitian正定矩阵 A,根据 lower 取值,进行如下形式的分解:
lower 为True: \(A = L L^*\)
lower 为False: \(A = U^* U\)
其中, \(L^*\) 为 \(L\) 的共轭转置矩阵。 其中, \(U^*\) 为 \(U\) 的共轭转置矩阵。
说明
Windows平台上还不支持 cholesky。
仅支持float32、float64、int32、int64类型的Tensor类型。
如果Tensor是int32、int64类型,它将被强制转换为:mstype.float64类型。
- 参数:
a (Tensor) - 要分解的 \((M, M)\) 方阵。
lower (bool, 可选) - 是计算上三角还是下三角的cholesky分解。 默认值:
False
。overwrite_a (bool, 可选) - 是否覆盖参数 a 中的数据(可能会提高性能)。 默认值:
False
。 在MindSpore中,这个参数当前不起作用。check_finite (bool, 可选) - 是否检查输入矩阵是否只包含有限数。 禁用可能会带来性能增益,但如果输入确实包含INF或NaN,则可能会导致问题(崩溃、程序不终止)。 默认值:
True
。 在MindSpore中,当前这个参数不起作用。
- 返回:
Tensor,a 的上三角或下三角cholesky因子。
- 异常:
ValueError - 如果输入的Tensor不是2D方阵。
- 支持平台:
GPU
CPU
样例:
>>> import numpy as onp >>> from mindspore import Tensor >>> from mindspore.scipy.linalg import cholesky >>> a = Tensor(onp.array([[1, 2],[2, 5]]).astype(onp.float32)) >>> L = cholesky(a, lower=True) >>> print(L) [[1. 0.] [2. 1.]]