PyTorch torch.cholesky_inverse 函数
torch.cholesky_inverse 是 PyTorch 中用于计算 Cholesky 分解的逆矩阵的函数。它使用 Cholesky 分解的结果来高效地计算矩阵的逆。
函数定义
torch.cholesky_inverse(L, upper=False, out=None)
参数:
L(Tensor): Cholesky 分解得到的上三角或下三角矩阵。upper(bool, 可选): 如果为 True,L 是上三角矩阵;否则是下三角矩阵。默认为 False。out(Tensor, 可选): 输出张量。
返回值:
torch.Tensor: 返回原始矩阵的逆矩阵。
使用示例
实例
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.cholesky(A)
# 使用 Cholesky 分解计算逆矩阵
A_inv = torch.cholesky_inverse(L)
print("原矩阵 A:")
print(A)
print("n逆矩阵 A^-1:")
print(A_inv)
print("n验证: A @ A^-1 =")
print(A @ A_inv)
# 创建一个对称正定矩阵
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.cholesky(A)
# 使用 Cholesky 分解计算逆矩阵
A_inv = torch.cholesky_inverse(L)
print("原矩阵 A:")
print(A)
print("n逆矩阵 A^-1:")
print(A_inv)
print("n验证: A @ A^-1 =")
print(A @ A_inv)
输出结果为:
原矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]], dtype=torch.float64)
逆矩阵 A^-1:
tensor([[ 0.7500, -0.5000, -0.2500],
[-0.5000, 1.0000, -0.0000],
[-0.2500, -0.0000, 0.2500]], dtype=torch.float64)
验证: A @ A^-1 =
tensor([[ 1.0000e+00, -1.4901e-08, 0.0000e+00],
[-7.4506e-09, 1.0000e+00, 1.4901e-08],
[ 0.0000e+00, 7.4506e-09, 1.0000e+00]], dtype=torch.float64)

Pytorch torch 参考手册