快捷方式

torch.cholesky

torch.cholesky(input, upper=False, *, out=None) Tensor

計算對稱正定矩陣 AA 或成批對稱正定矩陣的 Cholesky 分解。

如果 upperTrue,返回的矩陣 U 為上三角矩陣,分解形式為

A=UTUA = U^TU

如果 upperFalse,返回的矩陣 L 為下三角矩陣,分解形式為

A=LLTA = LL^T

如果 upperTrue,且 AA 是一批對稱正定矩陣,則返回的張量將由每個獨立矩陣的上三角 Cholesky 因子組成。類似地,當 upperFalse 時,返回的張量將由每個獨立矩陣的下三角 Cholesky 因子組成。

警告

torch.cholesky() 已棄用,請優先使用 torch.linalg.cholesky(),並在未來的 PyTorch 版本中移除。

L = torch.cholesky(A) 應替換為

L = torch.linalg.cholesky(A)

U = torch.cholesky(A, upper=True) 應替換為

U = torch.linalg.cholesky(A).mH

此轉換將對所有有效(對稱正定)輸入產生等效結果。

引數
  • input (Tensor) – 輸入張量 AA,其大小為 (,n,n)(*, n, n),其中 * 表示零個或多個由對稱正定矩陣組成的批次維度。

  • upper (bool, 可選) – 標誌,指示返回上三角矩陣還是下三角矩陣。預設值: False

關鍵字引數

out (Tensor, 可選) – 輸出矩陣

示例

>>> a = torch.randn(3, 3)
>>> a = a @ a.mT + 1e-3 # make symmetric positive-definite
>>> l = torch.cholesky(a)
>>> a
tensor([[ 2.4112, -0.7486,  1.4551],
        [-0.7486,  1.3544,  0.1294],
        [ 1.4551,  0.1294,  1.6724]])
>>> l
tensor([[ 1.5528,  0.0000,  0.0000],
        [-0.4821,  1.0592,  0.0000],
        [ 0.9371,  0.5487,  0.7023]])
>>> l @ l.mT
tensor([[ 2.4112, -0.7486,  1.4551],
        [-0.7486,  1.3544,  0.1294],
        [ 1.4551,  0.1294,  1.6724]])
>>> a = torch.randn(3, 2, 2) # Example for batched input
>>> a = a @ a.mT + 1e-03 # make symmetric positive-definite
>>> l = torch.cholesky(a)
>>> z = l @ l.mT
>>> torch.dist(z, a)
tensor(2.3842e-07)

文件

查閱 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源