91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pytorch如何實現權重初始化

發布時間:2021-05-20 14:21:44 來源:億速云 閱讀:476 作者:小新 欄目:開發技術

小編給大家分享一下Pytorch如何實現權重初始化,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在TensorFlow中,權重的初始化主要是在聲明張量的時候進行的。 而PyTorch則提供了另一種方法:首先應該聲明張量,然后修改張量的權重。通過調用torch.nn.init包中的多種方法可以將權重初始化為直接訪問張量的屬性。

1、不初始化的效果

在Pytorch中,定義一個tensor,不進行初始化,打印看看結果:

w = torch.Tensor(3,4)
print (w)

可以看到這時候的初始化的數值都是隨機的,而且特別大,這對網絡的訓練必定不好,最后導致精度提不上,甚至損失無法收斂。

2、初始化的效果

PyTorch提供了多種參數初始化函數:

torch.nn.init.constant(tensor, val)
torch.nn.init.normal(tensor, mean=0, std=1)
torch.nn.init.xavier_uniform(tensor, gain=1)

等等。詳細請參考:http://pytorch.org/docs/nn.html#torch-nn-init

注意上面的初始化函數的參數tensor,雖然寫的是tensor,但是也可以是Variable類型的。而神經網絡的參數類型Parameter是Variable類的子類,所以初始化函數可以直接作用于神經網絡參數。實際上,我們初始化也是直接去初始化神經網絡的參數。

讓我們試試效果:

w = torch.Tensor(3,4)
torch.nn.init.normal_(w)
print (w)

3、初始化神經網絡的參數

對神經網絡的初始化往往放在模型的__init__()函數中,如下所示:

class Net(nn.Module):

def __init__(self, block, layers, num_classes=1000):
  self.inplanes = 64
  super(Net, self).__init__()
  ***
  *** #定義自己的網絡層
  ***

  for m in self.modules():
    if isinstance(m, nn.Conv2d):
      n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
      m.weight.data.normal_(0, math.sqrt(2. / n))
    elif isinstance(m, nn.BatchNorm2d):
      m.weight.data.fill_(1)
      m.bias.data.zero_()

***
*** #定義后續的函數
***

也可以采取另一種方式:

定義一個權重初始化函數,如下:

def weights_init(m):
  classname = m.__class__.__name__
  if classname.find('Conv2d') != -1:
    init.xavier_normal_(m.weight.data)
    init.constant_(m.bias.data, 0.0)
  elif classname.find('Linear') != -1:
    init.xavier_normal_(m.weight.data)
    init.constant_(m.bias.data, 0.0)

在模型聲明時,調用初始化函數,初始化神經網絡參數:

model = Net(*****)
model.apply(weights_init)

pytorch的優點

1.PyTorch是相當簡潔且高效快速的框架;2.設計追求最少的封裝;3.設計符合人類思維,它讓用戶盡可能地專注于實現自己的想法;4.與google的Tensorflow類似,FAIR的支持足以確保PyTorch獲得持續的開發更新;5.PyTorch作者親自維護的論壇 供用戶交流和求教問題6.入門簡單

看完了這篇文章,相信你對“Pytorch如何實現權重初始化”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭锦后旗| 集贤县| 张家界市| 青田县| 石首市| 石狮市| 菏泽市| 土默特右旗| 湘西| 大厂| 聊城市| 襄汾县| 南部县| 宁海县| 江津市| 普陀区| 东源县| 永靖县| 隆林| 盐城市| 施甸县| 高阳县| 衢州市| 博白县| 会泽县| 库车县| 井陉县| 股票| 徐水县| 清苑县| 唐山市| 中卫市| 色达县| 上饶市| 蛟河市| 定兴县| 弥勒县| 张家港市| 朔州市| 宣恩县| 岢岚县|