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’), объекту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/2.1/generated/torch.linalg.cond.html