PyTorch torch.linalg.cholesky 函数
torch.linalg.cholesky 是 PyTorch 线性代数模块(linalg)中用于计算对称正定矩阵 Cholesky 分解的函数。它是 torch.cholesky 的推荐替代函数。
函数定义
torch.linalg.cholesky(A, upper=False, out=None)
参数:
A(Tensor): 输入对称正定矩阵。upper(bool, 可选): 如果为 True,返回上三角矩阵;否则返回下三角矩阵。默认为 False。out(Tensor, 可选): 输出张量。
返回值:
torch.Tensor: 返回 Cholesky 分解的三角矩阵。
使用示例
实例
import torch
# 创建一个对称正定矩阵
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Cholesky 分解
L = torch.linalg.cholesky(A)
print("原矩阵 A:")
print(A)
print("nCholesky 分解 (下三角矩阵 L):")
print(L)
print("n验证: L @ L.T = ")
print(L @ L.T)
# 创建一个对称正定矩阵
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Cholesky 分解
L = torch.linalg.cholesky(A)
print("原矩阵 A:")
print(A)
print("nCholesky 分解 (下三角矩阵 L):")
print(L)
print("n验证: L @ L.T = ")
print(L @ L.T)
输出结果为:
原矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]], dtype=torch.float64)
Cholesky 分解 (下三角矩阵 L):
tensor([[2.0000, 0.0000, 0.0000],
[1.0000, 2.0000, 0.0000],
[1.0000, 1.0000, 2.0000]], dtype=torch.float64)
验证: L @ L.T =
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]], dtype=torch.float64)

Pytorch torch 参考手册