torch.linalg.cholesky_ex
-
torch.linalg.cholesky_ex(A, *, upper=False, check_errors=False, out=None)[исходный код] -
Вычисляет разложение Холецкого комплексной эрмитовой или вещественной симметричной положительно определённой матрицы.
Эта функция пропускает (медленную) проверку ошибок и формирование сообщений об ошибках, выполняемые функцией
torch.linalg.cholesky(), и вместо этого напрямую возвращает коды ошибок LAPACK в составе именованного кортежа(L, info). Благодаря этому эта функция позволяет быстрее проверять, является ли матрица положительно определённой, а также предоставляет возможность обрабатывать ошибки разложения более гибко или эффективно, чемtorch.linalg.cholesky().Поддерживаются входные данные типов float, double, cfloat и cdouble. Также поддерживаются пакеты матриц; если
Aпредставляет собой пакет матриц, выходные данные имеют те же размерности пакета.Если
Aне является эрмитовой положительно определённой матрицей или представляет собой пакет матриц, в котором одна или несколько матриц не являются эрмитовыми положительно определёнными, тоinfoдля соответствующей матрицы содержит положительное целое число. Это число указывает порядок главного минора, который не является положительно определённым, из-за чего разложение не удалось завершить. Заполнениеinfoнулями означает, что разложение выполнено успешно. Еслиcheck_errors=Trueиinfoсодержат положительные целые числа, возникает RuntimeError.Примечание
Если входные данные находятся на устройстве CUDA, эта функция выполняет синхронизацию только при условии
check_errors= True.Предупреждение
Эта функция является «экспериментальной» и может измениться в будущей версии PyTorch.
См. также
torch.linalg.cholesky()— совместимый с NumPy вариант, который всегда проверяет наличие ошибок.- Параметры:
-
A (Tensor) – эрмитова матрица
n times nили пакет таких матриц размера(*, n, n), где*— одна или несколько размерностей пакета. - Именованные аргументы:
-
- upper (bool, необязательно) – возвращать ли верхнюю треугольную матрицу. Тензор, возвращаемый при upper=True, является сопряжённо-транспонированной версией тензора, возвращаемого при upper=False.
-
check_errors (bool, необязательно) – определяет, проверяется ли содержимое
infos. По умолчанию:False. -
out (tuple, необязательно) – кортеж из двух тензоров, в которые записываются выходные данные. Игнорируется, если
None. По умолчанию:None.
Примеры:
>>> A = torch.randn(2, 2, dtype=torch.complex128) >>> A = A @ A.t().conj() # creates a Hermitian positive-definite matrix >>> L, info = torch.linalg.cholesky_ex(A) >>> A tensor([[ 2.3792+0.0000j, -0.9023+0.9831j], [-0.9023-0.9831j, 0.8757+0.0000j]], dtype=torch.complex128) >>> L tensor([[ 1.5425+0.0000j, 0.0000+0.0000j], [-0.5850-0.6374j, 0.3567+0.0000j]], dtype=torch.complex128) >>> info tensor(0, dtype=torch.int32)
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.linalg.cholesky_ex.html