最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch 實(shí)現(xiàn)權(quán)重初始化

 更新時(shí)間:2019年12月31日 15:51:09   作者:idotc  
今天小編就為大家分享一篇Pytorch 實(shí)現(xiàn)權(quán)重初始化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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

1、不初始化的效果

在Pytorch中,定義一個(gè)tensor,不進(jìn)行初始化,打印看看結(jié)果:

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

可以看到這時(shí)候的初始化的數(shù)值都是隨機(jī)的,而且特別大,這對(duì)網(wǎng)絡(luò)的訓(xùn)練必定不好,最后導(dǎo)致精度提不上,甚至損失無法收斂。

2、初始化的效果

PyTorch提供了多種參數(shù)初始化函數(shù):

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

等等。詳細(xì)請(qǐng)參考:http://pytorch.org/docs/nn.html#torch-nn-init

注意上面的初始化函數(shù)的參數(shù)tensor,雖然寫的是tensor,但是也可以是Variable類型的。而神經(jīng)網(wǎng)絡(luò)的參數(shù)類型Parameter是Variable類的子類,所以初始化函數(shù)可以直接作用于神經(jīng)網(wǎng)絡(luò)參數(shù)。實(shí)際上,我們初始化也是直接去初始化神經(jīng)網(wǎng)絡(luò)的參數(shù)。

讓我們?cè)囋囆Ч?

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

3、初始化神經(jīng)網(wǎng)絡(luò)的參數(shù)

對(duì)神經(jīng)網(wǎng)絡(luò)的初始化往往放在模型的__init__()函數(shù)中,如下所示:

class Net(nn.Module):

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

  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_()

***
*** #定義后續(xù)的函數(shù)
***

也可以采取另一種方式:

定義一個(gè)權(quán)重初始化函數(shù),如下:

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)

在模型聲明時(shí),調(diào)用初始化函數(shù),初始化神經(jīng)網(wǎng)絡(luò)參數(shù):

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

以上這篇Pytorch 實(shí)現(xiàn)權(quán)重初始化就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Tensorflow tf.nn.atrous_conv2d如何實(shí)現(xiàn)空洞卷積的

    Tensorflow tf.nn.atrous_conv2d如何實(shí)現(xiàn)空洞卷積的

    這篇文章主要介紹了Tensorflow tf.nn.atrous_conv2d如何實(shí)現(xiàn)空洞卷積的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 基于Python+OpenCV實(shí)現(xiàn)自動(dòng)掃雷功能

    基于Python+OpenCV實(shí)現(xiàn)自動(dòng)掃雷功能

    相信許多人很早就知道有掃雷這么一款經(jīng)典的游(顯卡測(cè)試)戲(軟件),掃雷作為一款在Windows9x時(shí)代就已經(jīng)誕生的經(jīng)典游戲,從過去到現(xiàn)在依然都有著它獨(dú)特的魅力,所以本文小編給大家介紹了如何使用Python+OpenCV實(shí)現(xiàn)自動(dòng)掃雷效果,感興趣的朋友可以參考下
    2023-12-12
  • pytorch獲取模型某一層參數(shù)名及參數(shù)值方式

    pytorch獲取模型某一層參數(shù)名及參數(shù)值方式

    今天小編就為大家分享一篇pytorch獲取模型某一層參數(shù)名及參數(shù)值方式,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中random函數(shù)的用法整理大全

    Python中random函數(shù)的用法整理大全

    random庫是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫,random庫主要用于生成隨機(jī)數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?random函數(shù)用法的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼

    Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼

    這篇文章主要介紹了Python3.7 讀取音頻根據(jù)文件名生成字幕腳本的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python開發(fā)必備知識(shí)內(nèi)存管理與垃圾回收

    Python開發(fā)必備知識(shí)內(nèi)存管理與垃圾回收

    Python是一種高級(jí)編程語言,因其簡(jiǎn)潔而強(qiáng)大而備受歡迎,然而如其他編程語言一樣,Python也面臨著內(nèi)存管理的挑戰(zhàn),在Python中,垃圾回收是一項(xiàng)關(guān)鍵任務(wù),用于自動(dòng)釋放不再使用的內(nèi)存,以避免內(nèi)存泄漏,本文將介紹Python中的垃圾回收機(jī)制,以及如何通過優(yōu)化代碼來提高性能
    2023-11-11
  • Python使用pydub模塊轉(zhuǎn)換音頻格式以及對(duì)音頻進(jìn)行剪輯

    Python使用pydub模塊轉(zhuǎn)換音頻格式以及對(duì)音頻進(jìn)行剪輯

    這篇文章主要給大家介紹了關(guān)于Python使用pydub模塊轉(zhuǎn)換音頻格式以及對(duì)音頻進(jìn)行剪輯的相關(guān)資料pydub是python的高級(jí)一個(gè)音頻處理庫,可以讓你以一種不那么蠢的方法處理音頻。需要的朋友可以參考下
    2021-06-06
  • Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲

    Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲

    本文主要介紹了通過Python實(shí)現(xiàn)簡(jiǎn)單的支持聯(lián)機(jī)對(duì)戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機(jī)對(duì)戰(zhàn)的五子棋小游戲。廢話不多說,快來跟隨小編一起學(xué)習(xí)吧
    2021-12-12
  • Python json讀寫方式和字典相互轉(zhuǎn)化

    Python json讀寫方式和字典相互轉(zhuǎn)化

    這篇文章主要介紹了Python json讀寫方式和字典相互轉(zhuǎn)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 單利模式及python實(shí)現(xiàn)方式詳解

    單利模式及python實(shí)現(xiàn)方式詳解

    單例模式(Singleton Pattern)是一種常用的軟件設(shè)計(jì)模式,該模式的主要目的是確保 某一個(gè)類只有一個(gè)實(shí)例存在.這篇文章主要介紹了單利模式及python實(shí)現(xiàn)方式及Python單例模式的4種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-03-03

最新評(píng)論

宜君县| 调兵山市| 靖江市| 兴义市| 平凉市| 金昌市| 军事| 黄梅县| 尖扎县| 南城县| 霍山县| 敖汉旗| 罗平县| 汉寿县| 南京市| 阿尔山市| 高雄县| 蓬安县| 定南县| 阿拉善左旗| 德兴市| 拉孜县| 金溪县| 平塘县| 定南县| 遵义市| 新民市| 自治县| 江陵县| 岐山县| 科技| 大竹县| 东光县| 浦江县| 柳州市| 洛南县| 金华市| 宣恩县| 达尔| 丰县| 湖南省|