**:
--網路結構1-3-3-1,隱含層為兩層,每層都有3個神經元,輸入層和輸出層都有乙個神經元
model = nn.sequential()
--model現在是乙個容器,要往這個容器中新增神經網路層(輸入層、隱含層、輸出層)來構成多層感知器(神經網路)
--容器要新增的第一層為輸入層,1個輸入, 3個輸出
model:add(nn.linear(1,3))
--然後我們在他後面新增乙個sigmoid層,它的節點個數會自動和前一層的輸出個數保持一致。這裡的--sigmoid函式是用來將資料歸到0-1之間的數
--sigmoid函式有個缺點,當遠0點資料時,sigmoid會輸出為1,導數接近為0
model:add(nn.sigmoid())
--接下來我們新增第一和第二隱藏層中間的線性連線,輸入是3,輸出也是3。
model:add(nn.linear(3,3))
--作用一樣
model:add(nn.sigmoid())
--增加線性層,3個輸入乙個輸出
model:add(nn.linear(3,1))
--構建多層感知器的完整**如下
model = nn.sequential()
model:add(nn.mulconstant(0.1)) --在輸入進入之前先乘以0.1,縮小訓練值
model:add(nn.linear(1,3))
model:add(nn.sigmoid())
model:add(nn.linear(3,3))
model:add(nn.sigmoid())
model:add(nn.linear(3,1))
model:add(nn.mulconstant(50000)) --在輸入之後乘以50000,對**資料的縮小
--預設的權值優化是梯度下降法,訓練速度很慢。其實torch已經給我們提供了各種先進的優化演算法,都--放在optim這個庫里。我們在檔案的頭部新增包含optim庫
require 'optim'
--模型的引數拿出來看看,w是權值,1x3+3+3x3+3+3x1+1=22,dl_dw是w對loss的偏導,而且這兩個--都是引用,也就是值的變化會影響模型的引數
w, dl_dw = model:getparameters()
feval = function(w_new)
if w ~= w_new then w:copy(w_new) end
--導數初始為0
dl_dw:zero()
price_predict = model:forward(month_train)
loss = criterion:forward(price_predict, price_train)
model:backward(month_train, criterion:backward(price_predict, price_train))
--返回損失和梯度
return loss, dl_dw
end
--引數設定,學習率是0.01
params = 分割每一組資料,{}中的第乙個引數是橫座標點,第二個引數是縱座標點
ifi%10==0 then
gnuplot.plot(, )
endend
深度學習筆記4torch的rnn
本節 位址 require rnn require gnuplot batchsize 8 mini batch rho 100 back propagation through time hiddensize 20 r nn.recurent hiddensize,nn.linear 1,hidd...
深度學習筆記之Andrew Ng(3)
week3 本週進入了新的話題,神經網路,不過還暫時離不開我們之前學習的邏輯回歸,我的理解是,標準神經網路使用了乙個更大範圍的神經網路,為什麼這麼說呢,我們來一步步的開始學習。神經網路概述 那麼神經網路,是由乙個個神經元構成的,長成這個樣 之前我們學習過了preceptron 感知器 事實上就是乙個...
Scrapy學習筆記 3 深度優先和廣度優先演算法
1.url捷信 2.深度優先演算法 廣度優先演算法及其實現 scrapy預設通過深度優先演算法實現 深度優先輸出 a b d e i c f g h 遞迴實現 廣度優先輸出 a b c d e f g h i 佇列實現 深度優先演算法實現 遞迴實現 def depth tree tree node ...