1. 函数介绍:
功能: 计算对称正定矩阵的Cholesky分解。A 或对于成批的对称正定矩阵。 如果 upper 为 True ,则返回的矩阵 U 为上三角,分解形式为: A=U^TU 如果 upper 为 False ,则返回的矩阵 L 为下三角,分解形式为: A=LL^T 如果 upper 为 True ,并且A 是一组对称的正定矩阵,则返回的张量将由各个矩阵的上三角Cholesky因子组成。同样,当 upper 为 False 时,返回的张量将由各个矩阵的下三角Cholesky因子组成。 注意: torch.linalg.cholesky() 如果可能,应该在 torch.cholesky 上使用torch.linalg.cholesky()。但是请注意, torch.linalg.cholesky() 尚不支持 upper 参数,而是始终返回下三角矩阵。 Parameters input(张量)–输入张量A 大小(*, n, n) 其中 * 是零个或多个由对称正定矩阵组成的批处理维。 upper(bool ,可选)–指示是否返回上三角矩阵或下三角矩阵的标志。默认值: False 输出: out(Tensor ,可选)–输出矩阵
2. 案例
import torch
input = torch.randn(3, 3)
input = torch.mm(input , input .t())
out = torch.cholesky(input=input , upper=True)
print(input )
print(out)
'''
结果:
tensor([[ 6.0245, -2.4599, -3.9290],
[-2.4599, 8.1421, 4.2904],
[-3.9290, 4.2904, 3.7194]])
tensor([[ 2.4545, -1.0022, -1.6007],
[ 0.0000, 2.6716, 1.0054],
[ 0.0000, 0.0000, 0.3824]])
'''