torch.linalg.cond
-
torch.linalg.cond(A, p=None, *, out=None) → Tensor[исходный код] -
Вычисляет число обусловленности матрицы относительно матричной нормы.
Пусть — это или , число обусловленности матрицы определяется следующим образом
Число обусловленности
Aхарактеризует численную устойчивость линейной системыAX = Bотносительно матричной нормы.Поддерживаются типы данных float, double, cfloat и cdouble. Также поддерживаются пакеты матриц; если
A— это пакет матриц, выходные данные имеют те же размеры пакета.pзадаёт вычисляемую матричную норму. Поддерживаются следующие нормы:pматричная норма
Noneнорма
2(наибольшее сингулярное значение)‘fro’норма Фробениуса
‘nuc’ядерная норма
infmax(sum(abs(x), dim=1))-infmin(sum(abs(x), dim=1))1max(sum(abs(x), dim=0))-1min(sum(abs(x), dim=0))2наибольшее сингулярное значение
-2наименьшее сингулярное значение
где
infобозначаетfloat(‘inf’), объектinfиз NumPy или любой эквивалентный объект.Если
p— одно из(‘fro’, ‘nuc’, inf, -inf, 1, -1), эта функция используетtorch.linalg.norm()иtorch.linalg.inv(). Поэтому в этом случае матрица (или каждая матрица в пакете)Aдолжна быть квадратной и обратимой.Для
pиз(2, -2)эту функцию можно вычислить через сингулярные значенияВ этих случаях вычисление выполняется с помощью
torch.linalg.svdvals(). Для этих норм матрица (или каждая матрица в пакете)Aможет иметь произвольную форму.Примечание
Если входные данные находятся на устройстве CUDA, эта функция синхронизирует это устройство с CPU, если
p— одно из(‘fro’, ‘nuc’, inf, -inf, 1, -1).См. также
torch.linalg.solve()— функция для решения систем линейных уравнений с квадратными матрицами.torch.linalg.lstsq()— функция для решения систем линейных уравнений с матрицами общего вида.- Параметры:
-
-
A (Tensor) – тензор формы
(*, m, n), где*— ноль или более пакетных измерений дляpв(2, -2), и формы(*, n, n), где каждая матрица обратима, дляpв(‘fro’, ‘nuc’, inf, -inf, 1, -1). -
p (int, inf, -inf, 'fro', 'nuc', необязательный) – тип матричной нормы, используемой при вычислениях (см. выше). Значение по умолчанию:
None
-
A (Tensor) – тензор формы
- Именованные аргументы:
-
out (Tensor, необязательный) – выходной тензор. Игнорируется, если
None. Значение по умолчанию:None. - Возвращает:
-
Тензор с вещественными значениями, даже если
Aимеет комплексный тип. - Вызывает исключение:
-
RuntimeError – если
p— одно из(‘fro’, ‘nuc’, inf, -inf, 1, -1)иAматрица или любая матрица в пакетеAне является квадратной или обратимой.
Примеры:
>>> A = torch.randn(3, 4, 4, dtype=torch.complex64) >>> torch.linalg.cond(A) >>> A = torch.tensor([[1., 0, -1], [0, 1, 0], [1, 0, 1]]) >>> torch.linalg.cond(A) tensor([1.4142]) >>> torch.linalg.cond(A, 'fro') tensor(3.1623) >>> torch.linalg.cond(A, 'nuc') tensor(9.2426) >>> torch.linalg.cond(A, float('inf')) tensor(2.) >>> torch.linalg.cond(A, float('-inf')) tensor(1.) >>> torch.linalg.cond(A, 1) tensor(2.) >>> torch.linalg.cond(A, -1) tensor(1.) >>> torch.linalg.cond(A, 2) tensor([1.4142]) >>> torch.linalg.cond(A, -2) tensor([0.7071]) >>> A = torch.randn(2, 3, 3) >>> torch.linalg.cond(A) tensor([[9.5917], [3.2538]]) >>> A = torch.randn(2, 3, 3, dtype=torch.complex64) >>> torch.linalg.cond(A) tensor([[4.6245], [4.5671]])
© 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.cond.html