快捷方式

torch.nn.utils.parametrizations.weight_norm

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

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

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

权重归一化是一种重新参数化,它将权重张量的幅度与其方向解耦。这将由 name 指定的参数替换为两个参数:一个指定幅度,一个指定方向。

默认情况下,使用 dim=0,每个输出通道/平面独立计算范数。要计算整个权重张量的范数,请使用 dim=None

参见 https://arxiv.org/abs/1602.07868

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

  • name (字符串可选) – 权重参数的名称

  • dim (整数可选) – 计算范数的维度

返回值

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

示例

>>> m = weight_norm(nn.Linear(20, 40), name='weight')
>>> m
ParametrizedLinear(
  in_features=20, out_features=40, bias=True
  (parametrizations): ModuleDict(
    (weight): ParametrizationList(
      (0): _WeightNorm()
    )
  )
)
>>> m.parametrizations.weight.original0.size()
torch.Size([40, 1])
>>> m.parametrizations.weight.original1.size()
torch.Size([40, 20])

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源