1. 程式人生 > >Spark MLlib Deep Learning Deep Belief Network (深度學習-深度信念網路)2.3

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.

_3))

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 = $

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))

轉載請註明出處: