Spec-Zone.ru › PyTorch 2.14

torch.linalg.norm

torch.linalg.norm(input, ord=None, dim=None, keepdim=False, *, out=None, dtype=None) → Tensor [исходный код]

Вычисляет норму вектора или матрицы.

Поддерживаются входные данные с типами float, double, cfloat и cdouble.

Вычисление нормы вектора или матрицы определяется следующим образом:

  • Если dim является int, вычисляется норма вектора.
  • Если dim является 2-tuple, вычисляется норма матрицы.
  • Если dim= None и ord= None, input будет преобразован в одномерный тензор, а для полученного вектора будет вычислена норма 2.
  • Если dim= None и ord != None, input должен быть одномерным или двумерным.

ord задает вычисляемую норму. Поддерживаются следующие нормы:

ord

норма матриц

норма векторов

None (по умолчанию)

норма Фробениуса

норма 2 (см. ниже)

‘fro’

норма Фробениуса

– не поддерживается –

‘nuc’

ядерная норма

– не поддерживается –

inf

max(sum(abs(x), dim=1))

max(abs(x))

-inf

min(sum(abs(x), dim=1))

min(abs(x))

0

– не поддерживается –

sum(x != 0)

1

max(sum(abs(x), dim=0))

как указано ниже

-1

min(sum(abs(x), dim=0))

как указано ниже

2

наибольшее сингулярное значение

как указано ниже

-2

наименьшее сингулярное значение

как указано ниже

другие int или float

– не поддерживается –

sum(abs(x)^{ord})^{(1 / ord)}

где inf означает float(‘inf’), объект inf из NumPy или любой эквивалентный объект.

См. также

torch.linalg.vector_norm() вычисляет норму вектора.

torch.linalg.matrix_norm() вычисляет норму матрицы.

Приведенные выше функции зачастую понятнее и гибче, чем torch.linalg.norm(). Например, torch.linalg.norm(input, ord=1, dim=(0, 1)) всегда вычисляет норму матрицы, а с помощью torch.linalg.vector_norm(input, ord=1, dim=(0, 1)) можно вычислить норму вектора по двум измерениям.

Параметры:
  • input (Tensor) – тензор формы (*, n) или (*, m, n), где * — ноль или более пакетных измерений
  • ord (int, float, inf, -inf, 'fro', 'nuc', optional) – порядок нормы. По умолчанию: None
  • dim (int, Tuple[int], optional) – измерения, по которым вычисляется норма вектора или матрицы. Поведение при dim= None описано выше. По умолчанию: None
  • keepdim (bool, optional) – Если задано значение True, сокращенные измерения сохраняются в результате как измерения с размером один. По умолчанию: False
Именованные аргументы:
  • out (Tensor, optional) – выходной тензор. Игнорируется, если None. По умолчанию: None.
  • dtype (torch.dtype, optional) – Если задан, x приводится к типу dtype перед накоплением. По умолчанию: None
Возвращает:

Тензор с вещественными значениями, даже если input имеет комплексный тип.

Примеры:

>>> from torch import linalg as LA
>>> a = torch.arange(9, dtype=torch.float) - 4
>>> a
tensor([-4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])
>>> B = a.reshape((3, 3))
>>> B
tensor([[-4., -3., -2.],
        [-1.,  0.,  1.],
        [ 2.,  3.,  4.]])

>>> LA.norm(a)
tensor(7.7460)
>>> LA.norm(B)
tensor(7.7460)
>>> LA.norm(B, 'fro')
tensor(7.7460)
>>> LA.norm(a, float('inf'))
tensor(4.)
>>> LA.norm(B, float('inf'))
tensor(9.)
>>> LA.norm(a, -float('inf'))
tensor(0.)
>>> LA.norm(B, -float('inf'))
tensor(2.)

>>> LA.norm(a, 1)
tensor(20.)
>>> LA.norm(B, 1)
tensor(7.)
>>> LA.norm(a, -1)
tensor(0.)
>>> LA.norm(B, -1)
tensor(6.)
>>> LA.norm(a, 2)
tensor(7.7460)
>>> LA.norm(B, 2)
tensor(7.3485)

>>> LA.norm(a, -2)
tensor(0.)
>>> LA.norm(B.double(), -2)
tensor(1.8570e-16, dtype=torch.float64)
>>> LA.norm(a, 3)
tensor(5.8480)
>>> LA.norm(a, -3)
tensor(0.)

Использование аргумента dim для вычисления норм векторов:

>>> c = torch.tensor([[1., 2., 3.],
...                   [-1, 1, 4]])
>>> LA.norm(c, dim=0)
tensor([1.4142, 2.2361, 5.0000])
>>> LA.norm(c, dim=1)
tensor([3.7417, 4.2426])
>>> LA.norm(c, ord=1, dim=1)
tensor([6., 6.])

Использование аргумента dim для вычисления норм матриц:

>>> A = torch.arange(8, dtype=torch.float).reshape(2, 2, 2)
>>> LA.norm(A, dim=(1,2))
tensor([ 3.7417, 11.2250])
>>> LA.norm(A[0, :, :]), LA.norm(A[1, :, :])
(tensor(3.7417), tensor(11.2250))

© 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.norm.html

Spec-Zone.ru

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