Spec-Zone.ru › PyTorch 2.14

torch.norm

torch.norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None) [source]

Возвращает матричную или векторную норму заданного тензора.

Предупреждение

torch.norm устарела и может быть удалена в одном из будущих выпусков PyTorch. Её документация и поведение могут быть некорректными, и она больше не поддерживается активно.

Используйте torch.linalg.vector_norm() для вычисления векторных норм и torch.linalg.matrix_norm() для вычисления матричных норм. Функция с поведением, аналогичным этой функции, — torch.linalg.norm(). Однако обратите внимание, что сигнатуры этих функций немного отличаются от сигнатуры torch.norm.

Параметры:
  • input (Tensor) – Входной тензор. Его тип данных должен быть вещественным или комплексным. Для комплексных входных данных норма вычисляется с использованием абсолютного значения каждого элемента. Если входные данные комплексные и не указаны ни dtype, ни out, типом данных результата будет соответствующий вещественный тип (например, float, если input имеет тип complexfloat).
  • p (int, float, inf, -inf, 'fro', 'nuc', необязательно) –

    порядок нормы. По умолчанию: 'fro' Можно вычислить следующие нормы:

    ord

    матричная норма

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

    ’fro’

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

    –

    ‘nuc’

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

    –

    Число

    –

    sum(abs(x)**ord)**(1./ord)

    Векторную норму можно вычислять по любому количеству измерений. Соответствующие измерения input объединяются в одно измерение, и норма вычисляется по этому объединённому измерению.

    Норма Фробениуса даёт тот же результат, что и p=2, во всех случаях, кроме ситуации, когда dim — это список из трёх или более измерений. В этом случае при вычислении нормы Фробениуса возникает ошибка.

    Ядерную норму можно вычислять только по двум измерениям.

  • dim (int, tuple of ints, list of ints, необязательно) – Определяет измерение или измерения input, по которым вычисляется норма. Если dim равно None, норма вычисляется по всем измерениям input. Если тип нормы, указанный в p, не поддерживает указанное количество измерений, возникает ошибка.
  • keepdim (bool, необязательно) – следует ли сохранять dim в выходных тензорах. Игнорируется, если dim = None и out = None. По умолчанию: False
  • out (Tensor, необязательно) – выходной тензор. Игнорируется, если dim = None и out = None.
  • dtype (torch.dtype, необязательно) – требуемый тип данных возвращаемого тензора. Если указан, во время выполнения операции входной тензор преобразуется в dtype. По умолчанию: None.

Примечание

Хотя p='fro' поддерживает любое количество измерений, строгое математическое определение нормы Фробениуса применимо только к тензорам ровно с двумя измерениями. torch.linalg.matrix_norm() с ord='fro' соответствует математическому определению, поскольку её можно применять только по двум измерениям.

Пример:

>>> import torch
>>> a = torch.arange(9, dtype= torch.float) - 4
>>> b = a.reshape((3, 3))
>>> torch.norm(a)
tensor(7.7460)
>>> torch.norm(b)
tensor(7.7460)
>>> torch.norm(a, float('inf'))
tensor(4.)
>>> torch.norm(b, float('inf'))
tensor(4.)
>>> c = torch.tensor([[ 1, 2, 3], [-1, 1, 4]] , dtype=torch.float)
>>> torch.norm(c, dim=0)
tensor([1.4142, 2.2361, 5.0000])
>>> torch.norm(c, dim=1)
tensor([3.7417, 4.2426])
>>> torch.norm(c, p=1, dim=1)
tensor([6., 6.])
>>> d = torch.arange(8, dtype=torch.float).reshape(2, 2, 2)
>>> torch.norm(d, dim=(1, 2))
tensor([ 3.7417, 11.2250])
>>> torch.norm(d[0, :, :]), torch.norm(d[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.norm.html

Spec-Zone.ru

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