快捷方式

torch.nn.utils.weight_norm

torch.nn.utils.weight_norm(module, name='weight', dim=0)[源代码][源代码]

对给定模块中的参数应用权重归一化。

w=gvv\mathbf{w} = g \dfrac{\mathbf{v}}{\|\mathbf{v}\|}

权重归一化是一种重参数化,它将权重张量的大小与其方向解耦。这会将由 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 与从旧的 weight_norm 生成的 state_dict 兼容。

迁移指南

参数
  • module (Module) – 包含模块

  • name (str, 可选) – 权重参数的名称

  • dim (int, 可选) – 计算规范化的维度

返回值

带有权重归一化钩子的原始模块

返回类型

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])

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源