torch.nn.utils.weight_norm
-
torch.nn.utils.weight_norm(module, name='weight', dim=0)[исходный код] -
Применяет нормализацию весов к параметру указанного модуля.
Нормализация весов — это перепараметризация, которая отделяет величину тензора весов от его направления. Она заменяет параметр, заданный с помощью
name(например,'weight'), двумя параметрами: один задаёт величину (например,'weight_g'), а другой — направление (например,'weight_v'). Нормализация весов реализована с помощью хука, который пересчитывает тензор весов по величине и направлению перед каждым вызовомforward().По умолчанию, при использовании
dim=0, норма вычисляется независимо для каждого выходного канала/плоскости. Чтобы вычислить норму для всего тензора весов, используйтеdim=None.См. https://arxiv.org/abs/1602.07868
Предупреждение
Эта функция устарела. Используйте
torch.nn.utils.parametrizations.weight_norm(), в которой применяется современный API параметризации. Новаяweight_normсовместима сstate_dict, созданными с помощью старыхweight_norm.Руководство по миграции:
- Величина (
weight_g) и направление (weight_v) теперь представлены соответственно какparametrizations.weight.original0иparametrizations.weight.original1. Если вас это беспокоит, оставьте комментарий в pytorch/pytorch#102999 - Чтобы удалить перепараметризацию нормализации весов, используйте
torch.nn.utils.parametrize.remove_parametrizations(). - Теперь вес пересчитывается не один раз при выполнении модуля, а при каждом обращении к нему. Чтобы восстановить прежнее поведение, используйте
torch.nn.utils.parametrize.cached()перед вызовом нужного модуля.
- Параметры:
- Возвращает:
-
Исходный модуль с хуком нормализации весов
- Тип возвращаемого значения:
-
T_module
Пример:
>>> m = weight_norm(nn.Linear(20, 40), name='weight') >>> m Linear(in_features=20, out_features=40, bias=True) >>> m.weight_g.size() torch.Size([40, 1]) >>> m.weight_v.size() torch.Size([40, 20])
- Величина (
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.utils.weight_norm.html