當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch spectral_norm用法及代碼示例


本文簡要介紹python語言中 torch.nn.utils.spectral_norm 的用法。

用法:

torch.nn.utils.spectral_norm(module, name='weight', n_power_iterations=1, eps=1e-12, dim=None)

參數

  • module(torch.nn.Module) -包含模塊

  • name(str,可選的) -權重參數名稱

  • n_power_iterations(int,可選的) -計算頻譜範數的冪迭代次數

  • eps(float,可選的) -epsilon 用於計算範數時的數值穩定性

  • dim(int,可選的) -與輸出數量對應的維度,默認為 0 ,但作為 ConvTranspose{1,2,3}d 實例的模塊除外,當它為 1

返回

帶有頻譜規範鉤子的原始模塊

將頻譜歸一化應用於給定模塊中的參數。

譜歸一化通過使用冪迭代方法計算的權重矩陣的譜範數 重新縮放權重張量,穩定了生成對抗網絡 (GAN) 中鑒別器(批評者)的訓練。如果權重張量的維數大於 2,則在冪迭代法中將其重塑為 2D 以獲得譜範數。這是通過一個鉤子實現的,該鉤子在每次 forward() 調用之前計算譜範數並重新調整權重。

參看生成對抗網絡的頻譜歸一化.

注意

此函數已使用 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])

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.nn.utils.spectral_norm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。