torch.nn.utils.spectral_norm
-
torch.nn.utils.spectral_norm(module, name='weight', n_power_iterations=1, eps=1e-12, dim=None)[исходный код] -
Применяет спектральную нормализацию к параметру указанного модуля.
Спектральная нормализация стабилизирует обучение дискриминаторов (критиков) в генеративно-состязательных сетях (GAN), масштабируя тензор весов с помощью спектральной нормы матрицы весов, вычисляемой методом степенных итераций. Если размерность тензора весов больше 2, при вычислении спектральной нормы методом степенных итераций он преобразуется в двумерный тензор. Это реализовано с помощью хука, который вычисляет спектральную норму и масштабирует веса перед каждым вызовом
forward().См. статью Спектральная нормализация для генеративно-состязательных сетей .
- Параметры:
-
- module (nn.Module) – содержащий модуль
- name (str, необязательно) – имя параметра весов
- n_power_iterations (int, необязательно) – число степенных итераций для вычисления спектральной нормы
- eps (float, необязательно) – эпсилон для численной устойчивости при вычислении норм
-
dim (int, необязательно) – размерность, соответствующая числу выходов; по умолчанию
0, за исключением модулей, являющихся экземплярами ConvTranspose{1,2,3}d, для которых значение равно1
- Возвращает:
-
Исходный модуль с хуком спектральной нормализации
- Тип возвращаемого значения:
-
T_module
Примечание
Эта функция была переработана и теперь реализована как
torch.nn.utils.parametrizations.spectral_norm()с использованием новой функциональности параметризации вtorch.nn.utils.parametrize.register_parametrization(). Используйте новую версию. В будущей версии PyTorch эта функция будет объявлена устаревшей.Пример:
>>> m = spectral_norm(nn.Linear(20, 40)) >>> m Linear(in_features=20, out_features=40, bias=True) >>> m.weight_u.size() torch.Size([40])
© 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.spectral_norm.html