torch.cholesky
-
torch.cholesky(input, upper=False, *, out=None) → Tensor -
Вычисляет разложение Холецкого для симметричной положительно определённой матрицы или для наборов симметричных положительно определённых матриц.
Если
upperравноTrue, возвращаемая матрицаUявляется верхнетреугольной, и разложение имеет вид:Если
upperравноFalse, возвращаемая матрицаLявляется нижнетреугольной, и разложение имеет вид:Если
upperравноTrue, и представляет собой набор симметричных положительно определённых матриц, то возвращаемый тензор будет состоять из верхнетреугольных факторов Холецкого для каждой из отдельных матриц. Аналогично, когдаupperравноFalse, возвращаемый тензор будет состоять из нижнетреугольных факторов Холецкого для каждой из отдельных матриц.Предупреждение
torch.cholesky()устарела и будет удалена в будущих выпусках PyTorch. Используйтеtorch.linalg.cholesky().L = torch.cholesky(A)следует заменить наL = torch.linalg.cholesky(A)
U = torch.cholesky(A, upper=True)следует заменить наU = torch.linalg.cholesky(A).mH
Это преобразование даст эквивалентные результаты для всех допустимых (симметричных положительно определённых) входных данных.
- Параметры:
- Ключевые аргументы:
-
out (Tensor, необязательно) – матрица вывода
Пример:
>>> a = torch.randn(3, 3) >>> a = a @ a.mT + 1e-3 # make symmetric positive-definite >>> l = torch.cholesky(a) >>> a tensor([[ 2.4112, -0.7486, 1.4551], [-0.7486, 1.3544, 0.1294], [ 1.4551, 0.1294, 1.6724]]) >>> l tensor([[ 1.5528, 0.0000, 0.0000], [-0.4821, 1.0592, 0.0000], [ 0.9371, 0.5487, 0.7023]]) >>> l @ l.mT tensor([[ 2.4112, -0.7486, 1.4551], [-0.7486, 1.3544, 0.1294], [ 1.4551, 0.1294, 1.6724]]) >>> a = torch.randn(3, 2, 2) # Example for batched input >>> a = a @ a.mT + 1e-03 # make symmetric positive-definite >>> l = torch.cholesky(a) >>> z = l @ l.mT >>> torch.dist(z, a) tensor(2.3842e-07)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.cholesky.html