torch.nn.utils.parametrizations.weight_norm¶
- torch.nn.utils.parametrizations.weight_norm(module, name='weight', dim=0)[source][source]¶
将权重归一化应用于给定模块中的参数。
权重归一化是一种重新参数化方法,它将权重张量的幅度与其方向解耦。这用两个参数替换了由
name
指定的参数:一个指定幅度,一个指定方向。默认情况下,使用
dim=0
,范数是独立于每个输出通道/平面的。要计算整个权重张量的范数,请使用dim=None
。请参阅 https://arxiv.org/abs/1602.07868
- 参数:
模块(Module)- 包含模块
name(str,可选)- 权重参数的名称
dim(int,可选)- 计算范数的维度
- 返回值:
带权重范数钩子的原始模块
示例:
>>> 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])