深度學習 多層感知機的從零開始實現

2021-10-04 18:13:04 字數 2132 閱讀 7332

如何增添**,在乙個隱藏層的基礎上加入乙個新的隱藏層,變為兩個隱藏層

單層感知機:

#乙個隱藏層

num_inputs,num_outputs,num_hiddens=

784,10,

256#隱藏層的權重引數和偏置引數

w1=torch.tensor(np.random.normal(0,

0.01

,(num_inputs,num_hiddens)

),dtype=torch.

float

)b1=torch.zeros(num_hiddens,dtype=torch.

float

)#輸出層的權重引數和偏置引數

w2=torch.tensor(np.random.normal(0,

0.01

,(num_hiddens,num_outputs)

),dtype=torch.

float

)b2=torch.zeros(num_outputs,dtype=torch.

float

)params=

[w1,b1,w2,b2]

for param in params:

param.requires_grad_(requires_grad=

true

)

#定義模型

defnet

(x):

#將原始轉成一維向量

x=x.view((-

1,num_inputs)

)#隱藏層變數h的計算

h=relu(torch.matmul(x,w1)

+b1)

#輸入層的計算

return torch.matmul(h,w2)

+b2

多層感知機:

#輸入個輸為784,輸出個輸為10,超引數隱藏單元個數為256

num_inputs,num_outputs,num_hiddens1,num_hiddens2=

784,10,

256,

256#隱藏層的權重引數和偏置引數

w1=torch.tensor(np.random.normal(0,

0.01

,(num_inputs,num_hiddens1)

),dtype=torch.

float

)b1=torch.zeros(num_hiddens1,dtype=torch.

float

)w2=torch.tensor(np.random.normal(0,

0.01

,(num_hiddens1,num_hiddens2)

),dtype=torch.

float

)b2=torch.zeros(num_hiddens2,dtype=torch.

float

)#輸出層的權重引數和偏置引數

w3=torch.tensor(np.random.normal(0,

0.01

,(num_hiddens2,num_outputs)

),dtype=torch.

float

)b3=torch.zeros(num_outputs,dtype=torch.

float

)params=

[w1,b1,w2,b2,w3,b3]

for param in params:

param.requires_grad_(requires_grad=

true

)

#定義模型

defnet

(x):

#將原始轉成一維向量

x=x.view((-

1,num_inputs)

)#隱藏層變數h的計算

h1=relu(torch.matmul(x,w1)

+b1)

h2=relu(torch.matmul(h1,w2)

+b2)

#輸入層的計算

return torch.matmul(h2,w3)

+b3

深度學習入門07 多層感知機

異或門可以通過其他閘電路進行表示,我們可以通過組合與門 與非門 或門實現異或門的邏輯功能 在大學的 數字電子技術基礎 這門課中,這個是非常基礎的知識哦 在已知與門 與非門 或門的邏輯功能 真值表 的情況下,如何使用這些邏輯門組合出異或門的邏輯功能呢?我們在這裡給大家提供一種思路,按照下面組合的方式將...

《動手學深度學習》多層感知機

多層感知機含有乙個隱藏層,以下是一種含單隱藏層的多層感知機的設計,其輸出o r n q boldsymbol in mathbb o rn q 的公式為 h x wh b h,o hwo bo begin boldsymbol boldsymbol boldsymbol h boldsymbol h...

pyTorch深度學習多層感知機的實現

目錄 前兩節實現的linear model 和 softmax model 是單層神經網路,只包含乙個輸入層和乙個輸出層,因為輸入層不對資料進行transformation,所以只算一層輸出層。多層感知機 mutilayer preceptron 加入了隱藏層,將神經網路的層級加深,因為線性層的串聯...