torch.nn.utils.spectral_norm#
- torch.nn.utils.spectral_norm(module, name='weight', n_power_iterations=1, eps=1e-12, dim=None)[source]#
对给定模块中的参数应用谱归一化。
谱归一化(Spectral normalization)通过利用幂迭代法计算权重矩阵的谱范数 ,并以此对权重张量进行缩放,从而稳定生成对抗网络(GANs)中判别器(Critic)的训练。如果权重张量的维度大于 2,则在幂迭代法中会将其重塑为二维以获取谱范数。该功能是通过一个钩子(hook)实现的,它会在每次
forward()调用前计算谱范数并重新缩放权重。请参阅 Spectral Normalization for Generative Adversarial Networks。
- 参数:
- 返回:
带有谱归一化钩子的原始模块
- 返回类型:
T_module
注意
此函数已使用
torch.nn.utils.parametrize.register_parametrization()中新的参数化功能,重新实现为torch.nn.utils.parametrizations.spectral_norm()。请使用较新的版本。此函数将在 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])