Spec-Zone.ru › PyTorch 2.14

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API