
430
|
第九章:在 Spark 上使用深度學習與 DL4J
這兩個區別實際上就是本範例與第 5 章的範例之間少數的重大改變,而我們在多層感知
器 Spark 範例中,也看到了相同的改變。這些改變並不會牽涉到許多行的程式碼,因此
我們可以再次看到,從本機學習工作流程跳到 Spark 機器學習工作流程,並不是一件很
困難的事。為了進一步強化這個想法,我們就來看看在這個範例中,LSTM 網路是如何
定義的。
設定 LSTM 網路架構
接下來我們特別強調的這段程式碼(來自前一節),其中有趣之處在於,它與第 5 章的
單行程版本程式碼範例是完全相同的:
// 設定網路相關配置:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.iterations(1)
.learningRate(0.1)
.rmsDecay(0.95)
.seed(12345)
.regularization(true)
.l2(0.001)
.weightInit(WeightInit.XAVIER)
.updater(Updater.RMSPROP)
.list()
.layer(0, new GravesLSTM.Builder().nIn(CHAR_TO_INT.size())
.nOut(lstmLayerSize).activation(Activation.TANH).build()) ...