Skip to content

Instantly share code, notes, and snippets.

@schrum2
Created October 24, 2017 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save schrum2/a206374869d08aebdfdab889f3d469d2 to your computer and use it in GitHub Desktop.
Save schrum2/a206374869d08aebdfdab889f3d469d2 to your computer and use it in GitHub Desktop.
Conv net config
NeuralNetConfiguration.Builder builder = new NeuralNetConfiguration.Builder()
.seed(123)
.miniBatch(true)
.cacheMode(CacheMode.DEVICE)
.learningRate(.01)
.updater(new Nesterovs(0.9))
.iterations(1)
.gradientNormalization(GradientNormalization.RenormalizeL2PerLayer)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.regularization(true); // KEEP?
int[] kernelArray = new int[]{3,3};
int[] strideArray = new int[]{1,1};
int[] zeroPaddingArray = new int[]{0,0};
int processWidth = 4;
ListBuilder listBuilder = builder.list(); // Building the DL4J network
listBuilder = listBuilder.layer(0, new ConvolutionLayer.Builder(kernelArray, strideArray, zeroPaddingArray)
.name("cnn1")
.convolutionMode(ConvolutionMode.Strict)
.nIn(2) // 2 input channels
.nOut(processWidth)
.weightInit(WeightInit.XAVIER_UNIFORM)
.activation(Activation.RELU)
.learningRate(1e-2)
.biasInit(1e-2)
.biasLearningRate(1e-2*2).build());
listBuilder = listBuilder.layer(1, new ConvolutionLayer.Builder(kernelArray, strideArray, zeroPaddingArray)
.name("cnn2")
.convolutionMode(ConvolutionMode.Strict)
.nOut(processWidth)
.weightInit(WeightInit.XAVIER_UNIFORM)
.activation(Activation.RELU)
.learningRate(1e-2)
.biasInit(1e-2)
.biasLearningRate(1e-2*2).build());
listBuilder = listBuilder.layer(2, new ConvolutionLayer.Builder(kernelArray, strideArray, zeroPaddingArray)
.name("cnn3")
.convolutionMode(ConvolutionMode.Strict)
.nOut(processWidth)
.weightInit(WeightInit.XAVIER_UNIFORM)
.activation(Activation.RELU)
.learningRate(1e-2)
.biasInit(1e-2)
.biasLearningRate(1e-2*2).build());
listBuilder = listBuilder.layer(3, new ConvolutionLayer.Builder(kernelArray, strideArray, zeroPaddingArray)
.name("cnn4")
.convolutionMode(ConvolutionMode.Strict)
.nOut(processWidth)
.weightInit(WeightInit.XAVIER_UNIFORM)
.activation(Activation.RELU)
.learningRate(1e-2)
.biasInit(1e-2)
.biasLearningRate(1e-2*2).build());
listBuilder = listBuilder
.layer(4, new OutputLayer.Builder(LossFunctions.LossFunction.MSE)
.name("output")
.nOut(1)
.activation(Activation.TANH)
.build());
MultiLayerConfiguration conf = listBuilder
.backprop(true)
.pretrain(false)
.setInputType(InputType.convolutional(20, 10, 2))
.build();
// For some reason, this model works
MultiLayerNetwork niceModel = new MultiLayerNetwork(conf);
niceModel.init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment