下面寫了乙個超級簡單的例項,訓練和測試資料是mnist手寫識別資料集:
from sklearn.neural_network import mlpclassifier
import gzip
import pickle
with gzip.
open
('./mnist.pkl.gz'
)as f_gz:
train_data,valid_data,test_data = pickle.load(f_gz)
clf = mlpclassifier(solver=
'sgd'
,activation =
'identity'
,max_iter =
10,alpha =1e-
5,hidden_layer_sizes =
(100,50
),random_state =
1,verbose =
true
)clf.fit(train_data[0]
[:10000
],train_data[1]
[:10000])
print clf.predict(test_data[0]
[:10]
)print
(clf.score(test_data[0]
[:100]
,test_data[1]
[:100]))
print
(clf.predict_proba(test_data[0]
[:10]
))
引數說明:
引數說明:
hidden_layer_sizes :例如hidden_layer_sizes=(50, 50),表示有兩層隱藏層,第一層隱藏層有50個神經元,第二層也有50個神經元。
activation :啟用函式,, 預設relu
solver: , 預設adam,用來優化權重
alpha :float,可選的,預設0.0001,正則化項引數
batch_size : int , 可選的,預設』auto』,隨機優化的minibatches的大小batch_size=min(200,n_samples),如果solver是』lbfgs』,分類器將不使用minibatch
learning_rate :學習率,用於權重更新,只有當solver為』sgd』時使用,,預設constant
power_t: double, 可選, default 0.5,只有solver=』sgd』時使用,是逆擴充套件學習率的指數.當learning_rate=』invscaling』,用來更新有效學習率。
max_iter: int,可選,預設200,最大迭代次數。
random_state:int 或randomstate,可選,預設none,隨機數生成器的狀態或種子。
shuffle: bool,可選,預設true,只有當solver=』sgd』或者『adam』時使用,判斷是否在每次迭代時對樣本進行清洗。
tol:float, 可選,預設1e-4,優化的容忍度
learning_rate_int:double,可選,預設0.001,初始學習率,控制更新權重的補償,只有當solver=』sgd』 或』adam』時使用。
verbose : bool, 可選, 預設false,是否將過程列印到stdout
warm_start : bool, 可選, 預設false,當設定成true,使用之前的解決方法作為初始擬合,否則釋放之前的解決方法。
momentum : float, 預設 0.9,動量梯度下降更新,設定的範圍應該0.0-1.0. 只有solver=』sgd』時使用.
nesterovs_momentum : boolean, 預設true, whether to use nesterov』s momentum. 只有solver=』sgd』並且momentum > 0使用.
early_stopping : bool, 預設false,只有solver=』sgd』或者』adam』時有效,判斷當驗證效果不再改善的時候是否終止訓練,當為true時,自動選出10%的訓練資料用於驗證並在兩步連續迭代改善,低於tol時終止訓練。
validation_fraction : float, 可選, 預設 0.1,用作早期停止驗證的預留訓練資料集的比例,早0-1之間,只當early_stopping=true有用
beta_1 : float, 可選, 預設0.9,只有solver=』adam』時使用,估計一階矩向量的指數衰減速率,[0,1)之間
beta_2 : float, 可選, 預設0.999,只有solver=』adam』時使用估計二階矩向量的指數衰減速率[0,1)之間
epsilon : float, 可選, 預設1e-8,只有solver=』adam』時使用數值穩定值。
屬性說明:
方法說明:
-set_params(**params):設定引數。
神經網路相關引數
關於建立 神經網路 段的引數說明 net feedforwardnet n,trainlm n為隱藏層大小,預設為10 trainlm 是被指定的訓練函式 levenberg marquardt 演算法t p net.trainparam.goal 0.001 goal是最小均方誤差的訓練目標 ne...
卷積神經網路引數
卷積神經網路 convolutional neural network,cnn 是深度學習技術中極具代表的網路結構之一,在影象處理領域取得了很大的成功,在國際標準的imagenet資料集上,許多成功的模型都是基於cnn的。cnn相較於傳統的影象處理演算法的優點之一在於,避免了對影象複雜的前期預處理過...
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...