pytorch中torch.cholesky()函数的使用

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]])

'''


版权声明:本文为weixin_43869605原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。