Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // some common parameters
- NeuralNetConfiguration.Builder builder = new NeuralNetConfiguration.Builder();
- builder.seed(123);
- builder.biasInit(0);
- builder.miniBatch(false);
- builder.updater(new RmsProp(0.001));
- builder.weightInit(WeightInit.XAVIER);
- ListBuilder listBuilder = builder.list();
- // first difference, for rnns we need to use GravesLSTM.Builder
- for (int i = 0; i < HIDDEN_LAYER_CONT; i++) {
- GravesLSTM.Builder hiddenLayerBuilder = new GravesLSTM.Builder();
- hiddenLayerBuilder.nIn(i == 0 ? LEARNSTRING_CHARS.size() : HIDDEN_LAYER_WIDTH);
- hiddenLayerBuilder.nOut(HIDDEN_LAYER_WIDTH);
- // adopted activation function from GravesLSTMCharModellingExample
- // seems to work well with RNNs
- hiddenLayerBuilder.activation(Activation.TANH);
- listBuilder.layer(i, hiddenLayerBuilder.build());
- }
- // we need to use RnnOutputLayer for our RNN
- RnnOutputLayer.Builder outputLayerBuilder = new RnnOutputLayer.Builder(LossFunction.MCXENT);
- // softmax normalizes the output neurons, the sum of all outputs is 1
- // this is required for our sampleFromDistribution-function
- outputLayerBuilder.activation(Activation.SOFTMAX);
- outputLayerBuilder.nIn(HIDDEN_LAYER_WIDTH);
- outputLayerBuilder.nOut(LEARNSTRING_CHARS.size());
- listBuilder.layer(HIDDEN_LAYER_CONT, outputLayerBuilder.build());
- // finish builder
- listBuilder.pretrain(false);
- listBuilder.backprop(true);
- // create network
- MultiLayerConfiguration conf = listBuilder.build();
- net = new MultiLayerNetwork(conf);
- net.init();
- //net.setListeners(new ScoreIterationListener(1));
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // some epochs
- for (int epoch = 0; epoch < 1000; epoch++) {
- System.out.println("Epoch " + epoch);
- provideUIServer();
- // train the data
- net.fit(trainingData);
- System.out.println("batch " + net.batchSize());
- // clear current stance from the last example
- net.rnnClearPreviousState();
- }
Add Comment
Please, Sign In to add comment