您好,登錄后才能下訂單哦!
由于研究關系需要自己手動給卷積層初始化權值,但是好像博客上提到的相關文章比較少(大部分都只提到使用nn.init里的按照一定分布初始化方法),自己參考了下Pytorch的官方文檔,發現有兩種方法吧。
所以mark下。
import torch import torch.nn as nn import torch.optim as optim import numpy as np # 第一一個卷積層,我們可以看到它的權值是隨機初始化的 w=torch.nn.Conv2d(2,2,3,padding=1) print(w.weight) # 第一種方法 print("1.使用另一個Conv層的權值") q=torch.nn.Conv2d(2,2,3,padding=1) # 假設q代表一個訓練好的卷積層 print(q.weight) # 可以看到q的權重和w是不同的 w.weight=q.weight # 把一個Conv層的權重賦值給另一個Conv層 print(w.weight) # 第二種方法 print("2.使用來自Tensor的權值") ones=torch.Tensor(np.ones([2,2,3,3])) # 先創建一個自定義權值的Tensor,這里為了方便將所有權值設為1 w.weight=torch.nn.Parameter(ones) # 把Tensor的值作為權值賦值給Conv層,這里需要先轉為torch.nn.Parameter類型,否則將報錯 print(w.weight)
效果預覽
以上這篇Pytorch卷積層手動初始化權值的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。