torch.triangular_solve
-
torch.triangular_solve(b, A, upper=True, transpose=False, unitriangular=False, *, out=None) -
Решает систему уравнений с квадратной обратимой верхней или нижней треугольной матрицей и несколькими правыми частями .
В обозначениях это решение уравнения . Предполагается, что — квадратная верхняя треугольная матрица (или нижняя треугольная, если
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)
- Параметры:
-
- b (Tensor) – несколько правых частей размера , где — ноль или более пакетных размерностей
- A (Tensor) – входная треугольная матрица коэффициентов размера , где — ноль или более пакетных размерностей
-
upper (bool, необязательный) – указывает, является ли верхней или нижней треугольной матрицей. Значение по умолчанию:
True. -
transpose (bool, необязательный) – решает
op(A)X = b, гдеop(A) = A^T, если этот флаг имеет значениеTrue, иop(A) = A, если он имеет значениеFalse. Значение по умолчанию:False. -
unitriangular (bool, необязательный) – указывает, является ли унитреугольной матрицей. Если значение True, предполагается, что диагональные элементы равны 1 и не считываются из . Значение по умолчанию:
False.
- Именованные аргументы:
-
out ((Tensor, Tensor), необязательный) – кортеж из двух тензоров, в которые записывается результат. Игнорируется, если
None. Значение по умолчанию:None. - Возвращает:
-
Именованный кортеж
(solution, cloned_coefficient), гдеcloned_coefficient— это копия , аsolution— решение уравнения (или соответствующего варианта системы уравнений в зависимости от именованных аргументов).
Примеры:
>>> 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]]))
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.triangular_solve.html