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/2.1/generated/torch.cholesky.html