• 文档 >
  • torch >
  • torch.cholesky
快捷键

torch.cholesky

torch.cholesky(input, upper=False, *, out=None) Tensor

计算对称正定矩阵 AA 或对称正定矩阵批次的 Cholesky 分解。

如果 upper 等于 True ,则返回的矩阵 U 是上三角矩阵,分解形式为:

A=UTUA = U^TU

如果 upper 等于 False ,则返回的矩阵 L 是下三角矩阵,并且分解形式如下:

A=LLTA = LL^T

如果 upper 等于 True ,并且 AA 是一个对称正定矩阵的批次,则返回的张量将由每个单独矩阵的上三角 Cholesky 因子组成。同样地,当 upper 等于 False 时,返回的张量将由每个单独矩阵的下三角 Cholesky 因子组成。

警告

torch.cholesky() 已被弃用,并将在未来的 PyTorch 版本中删除,建议使用 torch.linalg.cholesky() 代替。

应将 L = torch.cholesky(A) 替换为

L = torch.linalg.cholesky(A)

应该替换为

U = torch.linalg.cholesky(A).mH

此转换将为所有有效的(对称正定)输入产生等效的结果。

参数:
  • 输入(张量)- 大小为 (,n,n)(*, n, n) 的输入张量 AA ,其中*表示零个或多个由对称正定矩阵组成的批处理维度。

  • 上三角(布尔值,可选)- 标志表示是否返回上三角或下三角矩阵。默认值: False

关键字参数:

输出(张量,可选)- 输出矩阵

示例:

>>> a = torch.randn(3, 3)
>>> a = a @ a.mT + 1e-3 # make symmetric positive-definite
>>> l = torch.cholesky(a)
>>> a
tensor([[ 2.4112, -0.7486,  1.4551],
        [-0.7486,  1.3544,  0.1294],
        [ 1.4551,  0.1294,  1.6724]])
>>> l
tensor([[ 1.5528,  0.0000,  0.0000],
        [-0.4821,  1.0592,  0.0000],
        [ 0.9371,  0.5487,  0.7023]])
>>> l @ l.mT
tensor([[ 2.4112, -0.7486,  1.4551],
        [-0.7486,  1.3544,  0.1294],
        [ 1.4551,  0.1294,  1.6724]])
>>> a = torch.randn(3, 2, 2) # Example for batched input
>>> a = a @ a.mT + 1e-03 # make symmetric positive-definite
>>> l = torch.cholesky(a)
>>> z = l @ l.mT
>>> torch.dist(z, a)
tensor(2.3842e-07)

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源