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Поддерживает вещественные и комплексные входные данные. Для комплексных входных данных оператор транспонирования выше является сопряжённой транспозицией.
- Параметры
-
- input (Tensor) – входная матрица размера , где — ноль или более размерностей набора
- input2 (Tensor) – входная матрица размера , где — ноль или более размерностей набора, составленных из верхней или нижней треугольной факторизации Холецкого
-
upper (bool, опционально) – указывает, рассматривается ли фактор Холецкого как нижняя или верхняя треугольная матрица. По умолчанию:
False.
- Ключевые аргументы
-
out (Tensor, опционально) – выходной тензор для
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/2.1/generated/torch.cholesky_solve.html