cholesky

paddle.linalg. cholesky ( x, upper=False, name=None, *, out=None ) [源代码]

计算一个对称正定矩阵或一批对称正定矩阵的 Cholesky 分解。如果 upper 是 True, 则分解形式为 \(A = U^{T}U\),返回的矩阵 U 是上三角矩阵。 否则,分解形式为 \(A = LL^{T}\),并返回矩阵 \(L\) 是下三角矩阵。

参数

  • x (Tensor)- 输入变量为多维 Tensor,它的维度应该为 [*, M, M],其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,支持数据类型为 float32、float64。别名 input。

  • upper (bool)- 指示是否返回上三角矩阵或下三角矩阵。默认值:False。

  • name (str,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

关键字参数

  • out (Tensor,可选) - 输出 Tensor,若不为 None,计算结果将保存在该 Tensor 中,默认值为 None。

返回

Tensor,与 x 具有相同形状和数据类型。它代表了 Cholesky 分解生成的三角矩阵。

代码示例

>>> import paddle
>>> paddle.seed(2023)

>>> a = paddle.rand([3, 3], dtype="float32")
>>> a_t = paddle.transpose(a, [1, 0])
>>> x = paddle.matmul(a, a_t) + 1e-03

>>> out = paddle.linalg.cholesky(x, upper=False)
>>> print(out)
Tensor(shape=[3, 3], dtype=float32, place=Place(cpu), stop_gradient=True,
[[1.04337060, 0.        , 0.        ],
 [1.06467676, 0.17859183, 0.        ],
 [1.30602181, 0.08326342, 0.22790733]])

使用本API的教程文档