torch.linalg.matrix_norm
-
torch.linalg.matrix_norm(A, ord='fro', dim=(-2, -1), keepdim=False, *, dtype=None, out=None) → Tensor -
Вычисляет матричную норму.
Если
Aимеет комплексное значение, она вычисляет нормуA.abs()Поддерживает входные значения float, double, cfloat и cdouble типов. Также поддерживает пакеты матриц: норма вычисляется по измерениям, указанным в 2-кортеже
dim, а другие измерения обрабатываются как пакетные измерения. Результат будет иметь те же пакетные измерения.ordопределяет матричную норму, которая вычисляется. Поддерживаются следующие нормы:ordматричная норма
‘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’), объекту NumPy’sinfили любому эквивалентному объекту.- Параметры
-
-
A (Тензор) – тензор с двумя или более измерениями. По умолчанию его форма интерпретируется как
(*, m, n), где*— это ноль или более пакетных измерений, но это поведение можно контролировать с помощьюdim. -
ord (int, inf, -inf, 'fro', 'nuc', необязательно) – порядок нормы. По умолчанию:
‘fro’ -
dim (Кортеж[int, int], необязательно) – измерения, по которым вычисляется норма. По умолчанию:
(-2, -1) -
keepdim (bool, необязательно) – Если установлено в
True, уменьшенные измерения сохраняются в результате как измерения с размером один. По умолчанию:False
-
A (Тензор) – тензор с двумя или более измерениями. По умолчанию его форма интерпретируется как
- Ключевые аргументы
-
-
out (Тензор, необязательно) – выходной тензор. Игнорируется, если
None. По умолчанию:None. -
dtype (
torch.dtype, optional) – Если указано, входной тензор преобразуется вdtypeперед выполнением операции, а тип возвращаемого тензора будетdtype. По умолчанию:None
-
out (Тензор, необязательно) – выходной тензор. Игнорируется, если
- Возвращает
-
Вещественный тензор, даже когда
Aявляется комплексным.
Примеры:
>>> from torch import linalg as LA >>> A = torch.arange(9, dtype=torch.float).reshape(3, 3) >>> A tensor([[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]) >>> LA.matrix_norm(A) tensor(14.2829) >>> LA.matrix_norm(A, ord=-1) tensor(9.) >>> B = A.expand(2, -1, -1) >>> B tensor([[[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]], [[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]]) >>> LA.matrix_norm(B) tensor([14.2829, 14.2829]) >>> LA.matrix_norm(B, dim=(0, 2)) tensor([ 3.1623, 10.0000, 17.2627])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.linalg.matrix_norm.html