日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【细聊】torch.nn.init 初始化

發布時間:2024/3/12 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【细聊】torch.nn.init 初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1、init.uniform
  • 2、nn.init.normal
  • 3、nn.init.constant
  • 4、nn.init.eye
  • 5、nn.init.dirac
  • 6、nn.init.xavier_uniform
  • 7、nn.init.xavier_normal
  • 8、nn.init.kaiming_uniform
  • 9、nn.init.kaiming_normal
  • 10、nn.init.orthogonal
  • 11、nn.init.sparse


1、init.uniform

init.uniform(tensor, a=0, b=1)>>> w = torch.Tensor(3, 5) >>> nn.init.uniform(w)

均勻分布 U(a,b)\mathcal{U}(a, b)U(a,b)中生成值,填充輸入的張量或變量

Parameters:

  • tensor - n維的torch.Tensor
  • a - 均勻分布的下界
  • b - 均勻分布的上界

2、nn.init.normal

nn.init.normal(tensor, mean=0, std=1)>>> w = torch.Tensor(3, 5) >>> nn.init.normal(w)

從給定均值和標準差的正態分布 N(mean,std)\mathcal{N}(mean, std)N(mean,std)中生成值,填充輸入的張量或變量

Parameters:

  • tensor – n維的torch.Tensor
  • mean – 正態分布的均值
  • std – 正態分布的標準差

3、nn.init.constant

nn.init.constant(tensor, val)>>> w = torch.Tensor(3, 5) >>> nn.init.constant(w)

用val的值填充輸入的張量或變量

Parameters:

  • tensor – n維的torch.Tensor 或 autograd.Variable
  • val – 用來填充張量的值

4、nn.init.eye

nn.init.eye(tensor)>>> w = torch.Tensor(3, 5) >>> nn.init.eye(w)

用單位矩陣來填充2維輸入張量或變量。在線性層盡可能多的保存輸入特性

Parameters:

  • tensor – 2維的torch.Tensor 或 autograd.Variable

5、nn.init.dirac

nn.init.dirac(tensor)>>> w = torch.Tensor(3, 16, 5, 5) >>> nn.init.dirac(w)

用Dirac δ\deltaδ 函數來填充{3, 4, 5}維輸入張量或變量。在卷積層盡可能多的保存輸入通道特性

Parameters:

  • tensor – {3, 4, 5}維的torch.Tensor 或 autograd.Variable

6、nn.init.xavier_uniform

nn.init.xavier_uniform(tensor, gain=1)>>> w = torch.Tensor(3, 5) >>> nn.init.xavier_uniform(w, gain=math.sqrt(2.0))

用一個均勻分布生成值,填充輸入的張量或變量。結果張量中的值采樣自U(-a, a),其中 a=gain?6fan_in+fan_outa= gain * \sqrt{ \frac{6}{fan\_in + fan\_out}}a=gain?fan_in+fan_out6??,該方法也被稱為Glorot initialisation
參考:Glorot, X.和Bengio, Y.等“Understanding the difficulty of training deep feedforward neural networks”

Parameters:

  • tensor – n維的torch.Tensor
  • gain - 可選的縮放因子

7、nn.init.xavier_normal

nn.init.xavier_normal(tensor, gain=1)>>> w = torch.Tensor(3, 5) >>> nn.init.xavier_normal(w)

用一個正態分布生成值,填充輸入的張量或變量。結果張量中的值采樣自均值為0,標準差為 gain?2fan_in+fan_outgain * \sqrt{\frac{2}{fan\_in + fan\_out}}gain?fan_in+fan_out2?? 的正態分布。也被稱為Glorot initialisation
參考:Glorot, X.和Bengio, Y. 等“Understanding the difficulty of training deep feedforward neural networks”

Parameters:

  • tensor – n維的torch.Tensor
  • gain - 可選的縮放因子

8、nn.init.kaiming_uniform

nn.init.kaiming_uniform(tensor, a=0, mode='fan_in',nonlinearity='leaky_relu')>>> w = torch.Tensor(3, 5) >>> nn.init.kaiming_uniform(w, mode='fan_in')

用一個均勻分布生成值,填充輸入的張量或變量。結果張量中的值采樣自U(-bound, bound),其中 bound=gain×3fan_modebound = gain \times \sqrt{\frac{3}{fan\_mode}}bound=gain×fan_mode3??,也被稱為He initialisation
參考:He, K等“Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification”

Parameters:

  • tensor – n維的torch.Tensor或autograd.Variable
  • a -這層之后使用的rectifier的斜率系數(ReLU的默認值為0)
  • mode -可以為“fan_in”(默認)或 “fan_out”
    “fan_in”保留前向傳播時權值方差的量級
    “fan_out”保留反向傳播時的量級
  • nonlinearity=‘leaky_relu’ - 非線性函數 建議“relu”或“leaky_relu”(默認值)使用。

9、nn.init.kaiming_normal

nn.init.kaiming_normal(tensor, a=0, mode='fan_in')>>> w = torch.Tensor(3, 5) >>> nn.init.kaiming_normal(w, mode='fan_out')

用一個正態分布生成值,填充輸入的張量或變量。結果張量中的值采樣自均值為0,標準差為 std=2(1+a2)?faninstd=\sqrt{\frac{2}{(1 + a^2) * fan_in}}std=(1+a2)?fani?n2?? 的正態分布
參考:He, K 在 “Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification”

Parameters:

  • tensor – n維的torch.Tensor或 autograd.Variable
  • a -這層之后使用的rectifier的斜率系數(ReLU的默認值為0)
  • mode -可以為“fan_in”(默認)或 “fan_out”
    “fan_in”保留前向傳播時權值方差的量級
    “fan_out”保留反向傳播時的量級

10、nn.init.orthogonal

nn.init.orthogonal(tensor, gain=1)>>> w = torch.Tensor(3, 5) >>> nn.init.orthogonal(w)

用(半)正交矩陣填充輸入的張量或變量。輸入張量必須至少是2維的,對于更高維度的張量,超出的維度會被展平,視作行等于第一個維度,列等于稀疏矩陣乘積的2維表示
【其中非零元素生成自均值為0,標準差為std的正態分布】
參考:Saxe, A等人(2013)的“Exact solutions to the nonlinear dynamics of learning in deep linear neural networks”

Parameters:

  • tensor – n維的torch.Tensor 或 autograd.Variable,其中n>=2
  • gain -可選

11、nn.init.sparse

nn.init.sparse(tensor, sparsity, std=0.01)>>> w = torch.Tensor(3, 5) >>> nn.init.sparse(w, sparsity=0.1)

將2維的輸入張量或變量當做 稀疏矩陣填充,其中非零元素根據一個均值為0,標準差為std的正態分布生成
參考:Martens, J.(2010)的 “Deep learning via Hessian-free optimization”

Parameters:

  • tensor – n維的torch.Tensor或autograd.Variable
  • sparsity - 每列中需要被設置成零的元素比例
  • std - 用于生成非零值的正態分布的標準差

總結

以上是生活随笔為你收集整理的【细聊】torch.nn.init 初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。