Shortcuts

torch.triangular_solve

torch.triangular_solve(b, A, upper=True, transpose=False, unitriangular=False, *, out=None)

求解具有方形上三角或下三角可逆矩阵 AA 和多个右端项 bb 的方程组。

在符号中,它解决了 AX=bAX = b 并假设 AA 是方形的上三角矩阵(或者如果 upper= False 则是下三角矩阵)并且对角线上没有零。

torch.triangular_solve(b, A) 可以接受二维输入 b, A 或批次的二维矩阵输入。如果输入是批次的,则返回批次的输出 X

如果A的对角线包含零或非常接近零的元素,并且unitriangular= False(默认),或者如果输入矩阵条件较差,结果可能包含NaN

支持输入float、double、cfloat和cdouble数据类型。

警告

torch.triangular_solve() 已被弃用,取而代之的是 torch.linalg.solve_triangular() 并将在未来的 PyTorch 版本中移除。 torch.linalg.solve_triangular() 的参数顺序相反,并且不会返回其中一个输入的副本。

X = torch.triangular_solve(B, A).solution 应替换为

X = torch.linalg.solve_triangular(A, B)
Parameters
  • b (Tensor) – 大小为 (,m,k)(*, m, k) 的多个右侧,其中 * 表示零个或多个批次维度

  • A (Tensor) – 输入的三角系数矩阵,大小为 (,m,m)(*, m, m) 其中 * 表示零个或多个批次维度

  • upper (bool, 可选) – 是否 AA 是上三角或下三角。默认值:True

  • 转置 (布尔值, 可选) – 解决 op(A)X = b 其中 op(A) = A^T 如果此标志为 True, 并且 op(A) = A 如果它为 False。默认值: False

  • unitriangular (bool, 可选) – 是否 AA 是单位三角形。 如果为 True,则假设 AA 的对角元素为 1,并且不会从 AA 中引用。默认值:False

Keyword Arguments

输出 ((张量, 张量), 可选) – 用于写入输出的两个张量的元组。如果为None,则忽略。默认值:None

Returns

一个命名元组 (solution, cloned_coefficient),其中 cloned_coefficientAA 的克隆,而 solution 是方程组 AX=bAX = b 的解 XX (或方程组的任何变体,取决于关键字参数。)

示例:

>>> A = torch.randn(2, 2).triu()
>>> A
tensor([[ 1.1527, -1.0753],
        [ 0.0000,  0.7986]])
>>> b = torch.randn(2, 3)
>>> b
tensor([[-0.0210,  2.3513, -1.5492],
        [ 1.5429,  0.7403, -1.0243]])
>>> torch.triangular_solve(b, A)
torch.return_types.triangular_solve(
solution=tensor([[ 1.7841,  2.9046, -2.5405],
        [ 1.9320,  0.9270, -1.2826]]),
cloned_coefficient=tensor([[ 1.1527, -1.0753],
        [ 0.0000,  0.7986]]))