当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch cholesky_ex用法及代码示例


本文简要介绍python语言中 torch.linalg.cholesky_ex 的用法。

用法:

torch.linalg.cholesky_ex(A, *, upper=False, check_errors=False, out=None)

参数

A(Tensor) -Hermitian n times n 矩阵或大小为 (*, n, n) 的此类矩阵的批次,其中 * 是一个或多个批次维度。

关键字参数

  • upper(bool,可选的) -是否返回上三角矩阵。 upper=True 返回的张量是 upper=False 返回的张量的共轭转置。

  • check_errors(bool,可选的) -控制是否检查 infos 的内容。默认值:False

  • out(tuple,可选的) -将输出写入的两个张量的元组。如果 None 则忽略。默认值:None

计算复 Hermitian 或实对称正定矩阵的 Cholesky 分解。

此函数跳过 torch.linalg.cholesky() 的(缓慢)错误检查和错误消息构造,而是直接返回 LAPACK 错误代码作为命名元组 (L, info) 的一部分。这使得此函数成为检查矩阵是否为正定矩阵的更快方法,并且它提供了比 torch.linalg.cholesky() 更优雅或更高效地处理分解错误的机会。

支持 float、double、cfloat 和 cdouble dtypes 的输入。还支持批量矩阵,如果 A 是批量矩阵,则输出具有相同的批量维度。

如果 A 不是埃尔米特正定矩阵,或者它是一批矩阵,其中一个或多个不是埃尔米特正定矩阵,则 info 为相应矩阵存储一个正整数。正整数表示前导次数的阶数不是正定的,无法完成分解。 info填充零表示分解成功。如果check_errors=Trueinfo 包含正整数,则抛出RuntimeError。

注意

如果A 在一个 CUDA 设备上,这个函数可以将该设备与 CPU 同步。

警告

此函数是“experimental”,它可能会在未来的PyTorch 版本中更改。

例子:

>>> A = torch.randn(2, 2, dtype=torch.complex128)
>>> A = A @ A.t().conj()  # creates a Hermitian positive-definite matrix
>>> L, info = torch.linalg.cholesky_ex(A)
>>> A
tensor([[ 2.3792+0.0000j, -0.9023+0.9831j],
        [-0.9023-0.9831j,  0.8757+0.0000j]], dtype=torch.complex128)
>>> L
tensor([[ 1.5425+0.0000j,  0.0000+0.0000j],
        [-0.5850-0.6374j,  0.3567+0.0000j]], dtype=torch.complex128)
>>> info
tensor(0, dtype=torch.int32)

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.linalg.cholesky_ex。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。