Created
October 24, 2017 15:30
-
-
Save schrum2/a206374869d08aebdfdab889f3d469d2 to your computer and use it in GitHub Desktop.
Conv net config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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