Spark MLlib Deep Learning Deep Belief Network (深度學習-深度信念網路)2.3
Spark MLlib Deep Learning Deep Belief Network (深度學習-深度信念網路)2.3
第二章Deep Belief Network (深度信念網路)
3例項
3.1 測試資料
按照上例資料,或者新建圖片識別資料。
3.2 DBN例項
//****************例2(讀取固定樣本:來源於經典優化演算法測試函式Sphere Model)***********//
//2 讀取樣本資料
Logger.getRootLogger.setLevel(Level.WARN)
valdata_path ="/user/huangmeiling/deeplearn/data1"
valexamples =sc.textFile(data_path).cache()
valtrain_d1 =examples.map { line =>
valf1 = line.split("\t")
valf =f1.map(f =>f.toDouble)
valid =f(0)
valy = Array(f(1))
valx =f.slice(2,f.length)
(id, new BDM(1,y.length,y),new BDM(1,x.length,x))
}
valtrain_d =train_d1.map(f => (f._2,
f.
valopts = Array(100.0,20.0,0.0)
//3 設定訓練引數,建立DBN模型
valDBNmodel =new DBN().
setSize(Array(5, 7)).
setLayer(2).
setMomentum(0.1).
setAlpha(1.0).
DBNtrain(train_d, opts)
//4 DBN模型轉化為NN模型
valmynn =DBNmodel.dbnunfoldtonn(1)
valnnopts = Array(100.0,50.0,0.0)
valnumExamples =train_d.count()
println(s"numExamples = $
println(mynn._2)
for (i <-0 tomynn._1.length -1) {
print(mynn._1(i) +"\t")
}
println()
println("mynn_W1")
valtmpw1 =mynn._3(0)
for (i <-0 totmpw1.rows -1) {
for (j <-0 totmpw1.cols -1) {
print(tmpw1(i,j) +"\t")
}
println()
}
valNNmodel =new NeuralNet().
setSize(mynn._1).
setLayer(mynn._2).
setActivation_function("sigm").
setOutput_function("sigm").
setInitW(mynn._3).
NNtrain(train_d, nnopts)
//5 NN模型測試
valNNforecast =NNmodel.predict(train_d)
valNNerror =NNmodel.Loss(NNforecast)
println(s"NNerror = $NNerror.")
valprintf1 =NNforecast.map(f => (f.label.data(0), f.predict_label.data(0))).take(200)
println("預測結果——實際值:預測值:誤差")
for (i <-0 untilprintf1.length)
println(printf1(i)._1 +"\t" +printf1(i)._2 +"\t" + (printf1(i)._2 -printf1(i)._1))
轉載請註明出處: