On this page
torch.triangular_solve
torch.triangular_solve(b, A, upper=True, transpose=False, unitriangular=False, *, out=None)-
Solves a system of equations with a square upper or lower triangular invertible matrix and multiple right-hand sides .
In symbols, it solves and assumes is square upper-triangular (or lower-triangular if
upper= False) and does not have zeros on the diagonal.torch.triangular_solve(b, A)can take in 2D inputsb, Aor inputs that are batches of 2D matrices. If the inputs are batches, then returns batched outputsXIf the diagonal of
Acontains zeros or elements that are very close to zero andunitriangular= False(default) or if the input matrix is badly conditioned, the result may containNaNs.Supports input of float, double, cfloat and cdouble data types.
Warning
torch.triangular_solve()is deprecated in favor oftorch.linalg.solve_triangular()and will be removed in a future PyTorch release.torch.linalg.solve_triangular()has its arguments reversed and does not return a copy of one of the inputs.X = torch.triangular_solve(B, A).solutionshould be replaced withX = torch.linalg.solve_triangular(A, B)- Parameters
-
- b (Tensor) – multiple right-hand sides of size where is zero of more batch dimensions
- A (Tensor) – the input triangular coefficient matrix of size where is zero or more batch dimensions
- upper (bool, optional) – whether
is upper or lower triangular. Default:
True. - transpose (bool, optional) – solves
op(A)X = bwhereop(A) = A^Tif this flag isTrue, andop(A) = Aif it isFalse. Default:False. - unitriangular (bool, optional) – whether
is unit triangular. If True, the diagonal elements of
are assumed to be 1 and not referenced from
. Default:
False.
- Keyword Arguments
-
out ((Tensor, Tensor), optional) – tuple of two tensors to write the output to. Ignored if
None. Default:None. - Returns
-
A namedtuple
(solution, cloned_coefficient)wherecloned_coefficientis a clone of andsolutionis the solution to (or whatever variant of the system of equations, depending on the keyword arguments.)
Examples:
>>> 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]]))
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.triangular_solve.html