最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

16 PyTorch 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)【動手學深度學習v2】

2023-07-17 18:42 作者:月蕪SA  | 我要投稿

神經(jīng)網(wǎng)絡(luò)基礎(chǔ)

層和塊

net規(guī)定了網(wǎng)絡(luò)形狀,由一個(20,256)和(256,10)的全連接網(wǎng)絡(luò)和夾在其中的ReLU激活函數(shù)構(gòu)成

X為初始參數(shù),包含兩個樣本,每個樣本中有20維度。

下圖:用Pytorch中的Moudle構(gòu)造神經(jīng)網(wǎng)絡(luò)


Sequential函數(shù)構(gòu)建神經(jīng)網(wǎng)絡(luò)(同樣繼承自moudle父類):

其他更靈活的定義網(wǎng)絡(luò)的方法:

(torch.mm是指矩陣乘法)

下圖所示前饋方法并沒有實際意義,只是為了說明定義網(wǎng)絡(luò)的靈活性。

網(wǎng)絡(luò)層之間的嵌套(網(wǎng)絡(luò)計算順序是Sequential函數(shù)括號內(nèi)部由左到右):


參數(shù)管理

net可以視為python里的list類別,可以通過序號對其內(nèi)容進行訪問。

此處使用state_dict對net中的第三層進行訪問,輸出其狀態(tài)(對于感知機來說,其狀態(tài)等于其所含參數(shù):weigh和bias)

可以訪問層中的具體參數(shù)。每個層中的w,b各含兩個元素:data(記錄該元素具體值)和grad(記錄該元素梯度值,在未進行梯度計算時,顯示None)

一次性訪問網(wǎng)絡(luò)中所有參數(shù)


“*” :解包作用


網(wǎng)絡(luò)有嵌套時的情形:

block1:簡單的全連接層

block2:含有四個block1的網(wǎng)絡(luò)

rgnet:block2+ReLU

rgnet結(jié)構(gòu)

(bias值為True時,表示會為線性層添加偏置項)


設(shè)置初始參數(shù)

init_normal:初始化為正態(tài)分布

init_constant:初始化為常數(shù)(不推薦)

net.apply(init_normal)

在net中各層套用init_normal



對不同的塊使用不同的數(shù)據(jù)初始化:

Xavier初始化:詳見李沐Pytorch筆記14

此處對第一層應用Xavier初始化,對第三層應用常數(shù)初始化


自定義初始化:保留絕對值大于5的權(quán)重,其他權(quán)重置0.

直接修改法


權(quán)重共享:

指定網(wǎng)絡(luò)中第二層和第三層權(quán)重保持一致(此處激活層不算在層數(shù)中)


自定義層

以下代碼定義了一個無參數(shù)層,能夠?qū)⑤斎霐?shù)據(jù)的平均值變?yōu)?


以下代碼通過自定義構(gòu)建一個線性全連接層,需要的參數(shù)有輸入維度和輸出維度。計算所用的w與b在函數(shù)內(nèi)部按正態(tài)分布生成。

使用例


讀寫文件


torch.save(x, 'x-file')

將x值存儲在當前目錄下的 x-file中

以下程序演示存儲了list

以下程序演示存儲了模型參數(shù)

通過儲存state_dict儲存模型信息

使用這個被儲存的模型時,要先將新的模型也定義為與被儲存模型相同的結(jié)構(gòu)(clone=MLP())然后進行應用


eval():開始訓練,此處功能應該類似于train()


補充知識:

Sequential默認kaiming初始化,該方法在未來會有涉及







16 PyTorch 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)【動手學深度學習v2】的評論 (共 條)

分享到微博請遵守國家法律
德兴市| 普定县| 成都市| 卢氏县| 盐山县| 普陀区| 嘉义县| 沾益县| 荥阳市| 策勒县| 佛山市| 宁远县| 武冈市| 嘉禾县| 九江市| 嘉义县| 英德市| 吴川市| 泽普县| 开封县| 潮州市| 平塘县| 浦东新区| 大姚县| 象山县| 鄯善县| 枞阳县| 屏山县| 崇礼县| 横山县| 常州市| 贺州市| 蓬莱市| 大竹县| 黔西| 张家港市| 资兴市| 石狮市| 卫辉市| 博客| 洪江市|