激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 關于pytorch中全連接神經網絡搭建兩種模式詳解

關于pytorch中全連接神經網絡搭建兩種模式詳解

2020-04-22 10:10geter_CS Python

今天小編就為大家分享一篇關于pytorch中全連接神經網絡搭建兩種模式詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

pytorch搭建神經網絡是很簡單明了的,這里介紹兩種自己常用的搭建模式:

?
1
2
import torch
import torch.nn as nn

first:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)

這一種是將整個網絡寫在一個Sequential中,網絡參數設置可以在網絡搭建好后單獨設置:self.model[0].weight.data.uniform_(-3e-3,3e-3),這是設置第一個linear的權重是(-3e-3,3e-3)之間的均勻分布,bias是-1至1之間的均勻分布。

second:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)

網絡參數的設置可以在定義完線性層之后直接設置如這里對于第一個線性層是這樣設置:self.Linear1.weight.data.fill_(-0.1),self.Linear1.bias.data.fill_(-0.1)。

你可以看一下這樣定義完的參數的效果:

?
1
2
3
4
5
6
7
8
9
10
11
12
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()
?
1
print(Net1.Linear1.weight.data)

輸出:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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的類型是網絡的parameter。而self.Linear1.weight.data是FloatTensor。

以上這篇關于pytorch中全連接神經網絡搭建兩種模式詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/geter_CS/article/details/80015957

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片免费观看视频 | 欧洲成人av | 97视频 | 一级一级一级毛片 | 91美女视频在线观看 | 国产精品久久久久久久久久东京 | 色就色 综合偷拍区91网 | 婷婷一区二区三区四区 | 国产一级淫 | 久久久久久久.comav | 久久久久国产成人精品亚洲午夜 | 日韩精品中文字幕在线观看 | 羞羞电影网 | 一级黄色片在线看 | 国产一级免费电影 | 免费激情网址 | 免费黄色小网站 | 日日操夜夜操狠狠操 | 婷婷亚洲一区二区三区 | 精品一区二区电影 | 欧美a黄| 亚洲国产中文字幕 | 国产精品久久久久久久亚洲按摩 | 久久艹逼 | 日本在线不卡一区二区 | 澳门一级淫片免费视频 | 超级av在线 | 国产亚洲福利 | 一级黄色毛片子 | va免费视频 | 久在线播放 | 亚洲精中文字幕二区三区 | 久久精品99北条麻妃 | 国产精品成人久久 | 久久新网址| 久久99精品久久久久久园产越南 | 中国杭州少妇xxxx做受 | 亚洲综合网站 | 亚州精品在线视频 | 一区二区国产在线 | 欧美韩国日本在线 |