2016-05-14 108 views
1

我使用下面的神經網絡分類器在Pythonsknn多層感知分類

from sknn.mlp import Layer,Classifier 

nn = mlp.Classifier(
      layers=[ 
       mlp.Layer("Tanh", units=n_feat/8), 
       mlp.Layer("Sigmoid", units=n_feat/16), 
       mlp.Layer("Softmax", units=n_targets)], 
      n_iter=50, 
      n_stable=10, 
      batch_size=25, 
      learning_rate=0.002, 
      learning_rule="momentum", 
      valid_size=0.1, 
      verbose=1) 

這是工作只是fine.My的問題是,如果我需要,例如100,200或500隱藏層如何進行?我是否必須手動指定每個圖層,或者有人對MLP的python有更好的想法?

+0

有一個問題,我在神經網絡中很新,並試圖學習它。這個nn代表(輸入層,1個隱藏和1個輸出)還是(1個輸入,3個隱藏,1個輸出層)結構? (「Softmax」,units = n_targets)](層數= [層疊],單位= n_feat/8),' – enterbutton

回答

1

您可以創建一些基於循環的機制來構建我認爲的圖層列表,但這裏存在更大的問題。具有數百個層次的標準MLP很可能是極其昂貴的培訓 - 無論是在計算速度還是內存使用方面。 MLP通常只有一個或兩個隱藏層,偶爾還有幾個隱藏層。但對於真正能夠從更多隱藏層獲益的問題,納入deep learning領域的一些經驗教訓變得非常重要。例如,對於圖像上的對象分類,使用所有完全連接的圖層效率非常低,因爲您有興趣識別空間局部圖案,因此空間距離像素或區域之間的交互很大程度上是噪聲。 (這是使用了深刻的卷積神經網絡的一個完美案例。)

雖然有些非常深刻的網絡已經建立,這是值得指出的是,即使谷歌的很厲害盜-V3模型只是42層深。無論如何,如果你對構建深度模型感興趣,我建議閱讀這個Deep Learning book。從我讀過的內容來看,這似乎是一個很好的介紹。希望有所幫助!