torch.cholesky_solve
-
torch.cholesky_solve(input, input2, upper=False, *, out=None) → Tensor -
Решает систему линейных уравнений с положительно полуопределённой матрицей, которая должна быть обращена, учитывая её матрицу фактора Холецкого .
Если
upperявляетсяFalse, является нижней треугольной, иcвозвращается таким образом, что:Если
upperявляетсяTrueили не задано, является верхней треугольной, иcвозвращается таким образом, что:torch.cholesky_solve(b, u)может принимать 2D входыb, uили входы, которые являются наборами 2D матриц. Если входы являются наборами, то возвращаются наборы выходовcПоддерживает вещественные и комплексные входы. Для комплексных входных данных оператор транспонирования выше является сопряжённым транспонированием.
- Parameters:
-
- input (Tensor) – входная матрица размера , где - ноль или более размерностей набора
- input2 (Tensor) – входная матрица размера , где - ноль или более размерностей набора, состоящих из верхней или нижней треугольной матрицы Холецкого
-
upper (bool, optional) – указывает, рассматривать ли матрицу фактора Холецкого как нижнюю или верхнюю треугольную матрицу. По умолчанию:
False.
- Keyword Arguments:
-
out (Tensor, optional) – выходной тензор для
c
Пример:
>>> a = torch.randn(3, 3) >>> a = torch.mm(a, a.t()) # make symmetric positive definite >>> u = torch.linalg.cholesky(a) >>> a tensor([[ 0.7747, -1.9549, 1.3086], [-1.9549, 6.7546, -5.4114], [ 1.3086, -5.4114, 4.8733]]) >>> b = torch.randn(3, 2) >>> b tensor([[-0.6355, 0.9891], [ 0.1974, 1.4706], [-0.4115, -0.6225]]) >>> torch.cholesky_solve(b, u) tensor([[ -8.1625, 19.6097], [ -5.8398, 14.2387], [ -4.3771, 10.4173]]) >>> torch.mm(a.inverse(), b) tensor([[ -8.1626, 19.6097], [ -5.8398, 14.2387], [ -4.3771, 10.4173]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.cholesky_solve.html