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.
-
input (Tensor) – Входной тензор. Его тип данных должен быть вещественным или комплексным. Для комплексных входных данных норма вычисляется с использованием абсолютного значения каждого элемента. Если входные данные комплексные и не указаны ни
Примечание
Хотя
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