快捷方式

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(),它使用現代的 parametrization 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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源