torch.linalg.cond
-
torch.linalg.cond(A, p=None, *, out=None) → Tensor -
Вычисляет число обусловленности матрицы относительно нормы матрицы.
Пусть обозначает или , число обусловленности матрицы определяется как
Число обусловленности
Aизмеряет числовую устойчивость линейной системыAX = Bотносительно нормы матрицы.Поддерживает входные типы данных float, double, cfloat и cdouble. Также поддерживает пакеты матриц, и если
Aявляется пакетом матриц, то выходные данные имеют те же размерности пакета.pопределяет норму матрицы, которая вычисляется. Поддерживаются следующие нормы:pнорма матрицы
Noneнорма (по наибольшему сингулярному значению)
‘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’), объектуinfNumPy или любому эквивалентному объекту.Если
pявляется одним из(‘fro’, ‘nuc’, inf, -inf, 1, -1), эта функция используетtorch.linalg.norm()иtorch.linalg.inv(). В таком случае, матрица (или каждая матрица в пакете)Aдолжна быть квадратной и обратимой.Для
pв(2, -2), эта функция может быть вычислена с использованием сингулярных значенийВ этих случаях это вычисляется с помощью
torch.linalg.svdvals(). Для этих норм матрица (или каждая матрица в пакете)Aможет иметь любую форму.Примечание
Когда входные данные находятся на устройстве CUDA, эта функция синхронизирует это устройство с процессором, если
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', optional) – тип нормы матрицы для использования в вычислениях (см. выше). По умолчанию:
None
-
A (Tensor) – тензор формы
- Ключевые аргументы:
-
out (Tensor, optional) – выходной тензор. Игнорируется, если
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]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.linalg.cond.html