此為本人學習《深度學習入門》的學習筆記
本節將用 python 實現前面的購買蘋果的例子。這裡,我們把要實現的計算圖的乘法節點稱為「乘法層」(mullayer
),加法節點稱為「加法層」(addlayer
)。
1、乘法層的實現
層的實現中有兩個共通的方法(介面)forward()
class圖 5-17 購買 2 個蘋果和 3 個橘子mullayer:
def__init__
(self):
self.x =none
self.y =none
defforward(self, x, y):
self.x =x
self.y =y
out = x *y
return
out
defbackward(self, dout):
dx = dout * self.y #
翻轉x和y
圖 5-16 購買 2 個蘋果
使用這個乘法層的話,圖 5-16 的正向傳播可以像下面這樣實現
用 python 實現圖 5-17 的計算圖的過程如下所示
圖 5-18 relu 層的計算圖
classrelu:
def__init__
(self):
self.mask =none
defforward(self, x):
self.mask = (x <=0)
out =x.copy()
out[self.mask] =0
return
out
defbackward(self, dout):
dout[self.mask] =0
dx =dout
return dx
relu
實現sigmoid函式,sigmoid函式由式(5.9)表示
用計算圖表示式子(5.9)的話,則如圖5-19所示
圖 5-19 sigmoid 層的計算圖(僅正向傳播)
步驟 1
步驟 2
「+」節點將上游的值原封不動地傳給下游。計算圖如下所示。
步驟 3
計算圖中,上游的值乘以正向傳播時的輸出(這個例子中是 exp(-x))後,再傳給下游。
步驟 4
「×」節點將正向傳播時的值翻轉後做乘法運算。因此,這裡要乘以 -1。
圖 5-20 sigmoid 層的計算圖
機器學習 誤差逆傳播演算法 反向傳播演算法
誤差逆傳播演算法 error backpropagation,bp 是神經網路中常用的傳播演算法。bp演算法不僅可以應用於多層前饋神經網路,還可以應用於其他型別的神經網路,如訓練遞迴神經網路。通常所說的 bp網路 一般是指用bp演算法訓練的多層前饋神經網路。給定訓練集 d left y x y x ...
反向誤差傳播演算法學習筆記
構建cost function的表示式的函式,其神經網路圖如下,其 1和 2已經訓練好。輸入x為5000 400的矩陣 5000個元素,400個畫素 y為5000 1的矩陣 其中有5000個結果,以1,2,3,4,5,6,7,9,10 代表0 為label a1 ones size x,1 1 x ...
三 PyTorch 深度學習 反向傳播
import torch x data 1.0 2.0 3.0 y data 2.0 4.0 6.0 w torch.tensor 1.0 w的初值為1.0 w.requires grad true 需要計算梯度 defforward x return x w w是乙個tensor defloss ...