Skip to content

Instantly share code, notes, and snippets.

@Joshuaalbert
Last active February 17, 2017 19:19
Show Gist options
  • Select an option

  • Save Joshuaalbert/a2bb33dbd9cf2acf720ac761a5224a56 to your computer and use it in GitHub Desktop.

Select an option

Save Joshuaalbert/a2bb33dbd9cf2acf720ac761a5224a56 to your computer and use it in GitHub Desktop.
using different batchsize causes a error if cg already runs with different batch size. Error is at score.
package com.tactico.tm.asyncRL;
import org.deeplearning4j.nn.api.OptimizationAlgorithm;
import org.deeplearning4j.nn.conf.ComputationGraphConfiguration;
import org.deeplearning4j.nn.conf.NeuralNetConfiguration;
import org.deeplearning4j.nn.conf.Updater;
import org.deeplearning4j.nn.conf.inputs.InputType;
import org.deeplearning4j.nn.conf.layers.GravesLSTM;
import org.deeplearning4j.nn.graph.ComputationGraph;
import org.deeplearning4j.nn.weights.WeightInit;
import org.deeplearning4j.optimize.listeners.ScoreIterationListener;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.dataset.MultiDataSet;
import org.nd4j.linalg.factory.Nd4j;
public class Bug {
public static void main (String[] args){
ComputationGraphConfiguration.GraphBuilder confBuilder = new NeuralNetConfiguration.Builder()
.iterations(1)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.learningRate(0.1)
.updater(Updater.RMSPROP)
.weightInit(WeightInit.NORMALIZED)
.graphBuilder()
.setInputTypes(InputType.recurrent(2))
.addInputs("input")
.addLayer("layer", new GravesLSTM.Builder()
.nIn(2)
.nOut(5)
.activation("tanh")
.build(), "input");
confBuilder.setOutputs("layer");
ComputationGraphConfiguration cgconf = confBuilder.pretrain(false).backprop(true).build();
ComputationGraph cg = new ComputationGraph(cgconf);
cg.init();
cg.setListeners(new ScoreIterationListener(Constants.NEURAL_NET_ITERATION_LISTENER));
INDArray input = Nd4j.rand(1,2,1);
cg.rnnTimeStep(input);
INDArray input_train = Nd4j.rand(4,2,8);
INDArray labels = Nd4j.rand(4,5,8);
INDArray input_mask = Nd4j.rand(4,8);
INDArray labels_mask = Nd4j.rand(4,8);
MultiDataSet dataSet = new MultiDataSet(new INDArray[]{input_train}, new INDArray[]{labels}, new INDArray[]{input_mask}, new INDArray[]{labels_mask});
double score = cg.score(dataSet,true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment