快捷方式

torch.linalg.cholesky_ex

torch.linalg.cholesky_ex(A, *, upper=False, check_errors=False, out=None)

計算複數 Hermitian 矩陣或實數對稱正定矩陣的 Cholesky 分解。

此函式跳過(慢速)錯誤檢查和錯誤訊息構建(與 torch.linalg.cholesky() 相比),而是直接返回 LAPACK 錯誤程式碼,作為命名元組 (L, info) 的一部分。這使得此函式成為檢查矩陣是否正定的一種更快的方式,並且它提供了比 torch.linalg.cholesky() 更優雅或更高效地處理分解錯誤的機會。

支援 float、double、cfloat 和 cdouble 資料型別的輸入。還支援批處理矩陣,如果 A 是批處理矩陣,則輸出具有相同的批處理維度。

如果 A 不是 Hermitian 正定矩陣,或者如果它是批處理矩陣且其中一個或多個不是 Hermitian 正定矩陣,則 info 會為相應的矩陣儲存一個正整數。該正整數表示不是正定的主子式的階數,並且分解無法完成。 info 中填充零表示分解成功。如果 check_errors=Trueinfo 包含正整數,則會引發 RuntimeError。

注意

當輸入在 CUDA 裝置上時,此函式僅在 check_errors= True 時進行同步。

警告

此函式是“實驗性”的,它可能會在將來的 PyTorch 版本中更改。

另請參閱

torch.linalg.cholesky() 是一個與 NumPy 相容的變體,它總是檢查錯誤。

引數

A (Tensor) – Hermitian n times n 矩陣或尺寸為 (*, n, n) 的批處理矩陣,其中 * 表示一個或多個批處理維度。

關鍵字引數
  • upper (bool, 可選) – 是否返回上三角矩陣。當 upper=True 時返回的張量是當 upper=False 時返回的張量的共軛轉置。

  • check_errors (bool, 可選) – 控制是否檢查 infos 的內容。預設值:False

  • out (tuple, 可選) – 用於寫入輸出的兩個張量的元組。如果為 None 則忽略。預設值:None

示例

>>> A = torch.randn(2, 2, dtype=torch.complex128)
>>> A = A @ A.t().conj()  # creates a Hermitian positive-definite matrix
>>> L, info = torch.linalg.cholesky_ex(A)
>>> A
tensor([[ 2.3792+0.0000j, -0.9023+0.9831j],
        [-0.9023-0.9831j,  0.8757+0.0000j]], dtype=torch.complex128)
>>> L
tensor([[ 1.5425+0.0000j,  0.0000+0.0000j],
        [-0.5850-0.6374j,  0.3567+0.0000j]], dtype=torch.complex128)
>>> info
tensor(0, dtype=torch.int32)

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

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

檢視教程

資源

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

檢視資源