關(guān)于pytorch中全連接神經(jīng)網(wǎng)絡(luò)搭建兩種模式詳解
pytorch搭建神經(jīng)網(wǎng)絡(luò)是很簡(jiǎn)單明了的,這里介紹兩種自己常用的搭建模式:
import torch import torch.nn as nn
first:
class NN(nn.Module): def __init__(self): super(NN,self).__init__() self.model=nn.Sequential( nn.Linear(30,40), nn.ReLU(), nn.Linear(40,60), nn.Tanh(), nn.Linear(60,10), nn.Softmax() ) self.model[0].weight.data.uniform_(-3e-3, 3e-3) self.model[0].bias.data.uniform(-1,1) def forward(self,states): return self.model(states)
這一種是將整個(gè)網(wǎng)絡(luò)寫在一個(gè)Sequential中,網(wǎng)絡(luò)參數(shù)設(shè)置可以在網(wǎng)絡(luò)搭建好后單獨(dú)設(shè)置:self.model[0].weight.data.uniform_(-3e-3,3e-3),這是設(shè)置第一個(gè)linear的權(quán)重是(-3e-3,3e-3)之間的均勻分布,bias是-1至1之間的均勻分布。
second:
class NN1(nn.Module): def __init__(self): super(NN1,self).__init__() self.Linear1=nn.Linear(30,40) self.Linear1.weight.data.fill_(-0.1) #self.Linear1.weight.data.uniform_(-3e-3,3e-3) self.Linear1.bias.data.fill_(-0.1) self.layer1=nn.Sequential(self.Linear1,nn.ReLU()) self.Linear2=nn.Linear(40,60) self.layer2=nn.Sequential(self.Linear2,nn.Tanh()) self.Linear3=nn.Linear(60,10) self.layer3=nn.Sequential(self.Linear3,nn.Softmax()) def forward(self,states): return self.model(states)
網(wǎng)絡(luò)參數(shù)的設(shè)置可以在定義完線性層之后直接設(shè)置如這里對(duì)于第一個(gè)線性層是這樣設(shè)置:self.Linear1.weight.data.fill_(-0.1),self.Linear1.bias.data.fill_(-0.1)。
你可以看一下這樣定義完的參數(shù)的效果:
Net=NN()
print("0:",Net.model[0])
print("weight:",type(Net.model[0].weight))
print("weight:",type(Net.model[0].weight.data))
print("bias",Net.model[0].bias.data)
print('1:',Net.model[1])
#print("weight:",Net.model[1].weight.data)
print('2:',Net.model[2])
print('3:',Net.model[3])
#print(Net.model[-1])
Net1=NN1()
print(Net1.Linear1.weight.data)
輸出:
0: Linear (30 -> 40) weight: <class 'torch.nn.parameter.Parameter'> weight: <class 'torch.FloatTensor'> bias -0.6287 -0.6573 -0.0452 0.9594 -0.7477 0.1363 -0.1594 -0.1586 0.0360 0.7375 0.2501 -0.1371 0.8359 -0.9684 -0.3886 0.7200 -0.3906 0.4911 0.8081 -0.5449 0.9872 0.2004 0.0969 -0.9712 0.0873 0.4562 -0.4857 -0.6013 0.1651 0.3315 -0.7033 -0.7440 0.6487 0.9802 -0.5977 0.3245 0.7563 0.5596 0.2303 -0.3836 [torch.FloatTensor of size 40] 1: ReLU () 2: Linear (40 -> 60) 3: Tanh () -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 ... ⋱ ... -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000 [torch.FloatTensor of size 40x30] Process finished with exit code 0
這里要注意self.Linear1.weight的類型是網(wǎng)絡(luò)的parameter。而self.Linear1.weight.data是FloatTensor。
以上這篇關(guān)于pytorch中全連接神經(jīng)網(wǎng)絡(luò)搭建兩種模式詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?pyinstaller打包exe最新完整圖文教程
pyinstaller是一個(gè)非常簡(jiǎn)單的打包python的py文件的庫,下面這篇文章主要給大家介紹了關(guān)于Python?pyinstaller打包exe的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
在Python中等距取出一個(gè)數(shù)組其中n個(gè)數(shù)的實(shí)現(xiàn)方式
今天小編就為大家分享一篇在Python中等距取出一個(gè)數(shù)組其中n個(gè)數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python編寫網(wǎng)頁爬蟲腳本并實(shí)現(xiàn)APScheduler調(diào)度
爬蟲爬的頁面是京東的電子書網(wǎng)站頁面,每天會(huì)更新一些免費(fèi)的電子書,爬蟲會(huì)把每天更新的免費(fèi)的書名以第一時(shí)間通過郵件發(fā)給我,通知我去下載2014-07-07
Python基礎(chǔ)教程之增加和去除數(shù)字的千位分隔符
千位分隔符其實(shí)就是數(shù)字中的逗號(hào),下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之增加和去除數(shù)字的千位分隔符,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
python深度學(xué)習(xí)tensorflow卷積層示例教程
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow卷積層示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Django?后端數(shù)據(jù)傳給前端的實(shí)現(xiàn)示例
本文主要介紹了Django?后端數(shù)據(jù)傳給前端的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Python實(shí)現(xiàn)分?jǐn)?shù)序列求和
今天小編就為大家分享一篇Python實(shí)現(xiàn)分?jǐn)?shù)序列求和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)
數(shù)據(jù)可視化用于以更直接的表示方式顯示數(shù)據(jù),并且更易于理解,下面這篇文章主要給大家介紹了關(guān)于如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)的相關(guān)資料,需要的朋友可以參考下2021-11-11
python使用socket高效傳輸視頻數(shù)據(jù)幀(連續(xù)發(fā)送圖片)
本文主要介紹了python使用socket高效傳輸視頻數(shù)據(jù)幀(連續(xù)發(fā)送圖片),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

