Spec-Zone.ru › PyTorch 2.14

torch.nn.utils.spectral_norm

torch.nn.utils.spectral_norm(module, name='weight', n_power_iterations=1, eps=1e-12, dim=None) [исходный код]

Применяет спектральную нормализацию к параметру указанного модуля.

WSN=Wσ(W),σ(W)=max⁡h:h≠0∥Wh∥2∥h∥2\mathbf{W}_{SN} = \dfrac{\mathbf{W}}{\sigma(\mathbf{W})}, \sigma(\mathbf{W}) = \max_{\mathbf{h}: \mathbf{h} \ne 0} \dfrac{\|\mathbf{W} \mathbf{h}\|_2}{\|\mathbf{h}\|_2}

Спектральная нормализация стабилизирует обучение дискриминаторов (критиков) в генеративно-состязательных сетях (GAN), масштабируя тензор весов с помощью спектральной нормы σ\sigma матрицы весов, вычисляемой методом степенных итераций. Если размерность тензора весов больше 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

Spec-Zone.ru

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