.biasUpdater(new Nesterovs.Builder().learningRate(0.02).build()) .list() .layer(0, new ConvolutionLayer.Builder(5, 5) .stride(2,2) .build()) .layer(2, new ConvolutionLayer.Builder(5, 5)
.biasUpdater(new Nesterovs.Builder().learningRate(0.02).build()) .list() .layer(0, new ConvolutionLayer.Builder(5, 5) .stride(2,2) .build()) .layer(2, new ConvolutionLayer.Builder(5, 5)
.biasUpdater(new Nesterovs.Builder().learningRate(0.02).build()) .list() .layer(0, new ConvolutionLayer.Builder(5, 5) .stride(2,2) .build()) .layer(2, new ConvolutionLayer.Builder(5, 5)
new int[] {2, 2}, new int[] {1, 1}).convolutionMode(ConvolutionMode.Truncate) .name("maxpool1").build()) .layer(2, new ConvolutionLayer.Builder(new int[] {5, 5}, new int[] {2, 2}, new int[] {2, 2}) // TODO: fix input and put stride back to 1,1 .convolutionMode(ConvolutionMode.Truncate).name("cnn2") .cudnnAlgoMode(ConvolutionLayer.AlgoMode.PREFER_FASTEST).nOut(192) .name("cnn4").cudnnAlgoMode(ConvolutionLayer.AlgoMode.PREFER_FASTEST).nOut(256) .biasInit(nonZeroBias).build()) .layer(6, new ConvolutionLayer.Builder(new int[] {3, 3}, new int[] {1, 1}, new int[] {1, 1}) .name("cnn5").cudnnAlgoMode(ConvolutionLayer.AlgoMode.PREFER_FASTEST).nOut(256) .biasInit(nonZeroBias).build())
"stem-zero") .addLayer("stem-batch1", new BatchNormalization(), "stem-cnn1") .addLayer("stem-act1", new ActivationLayer.Builder().activation(Activation.RELU).build(), "stem-batch1") .addLayer("stem-maxpool1", new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] {3, 3}, new int[] {2, 2}).build(), "stem-act1"); new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] {3, 3}).build(), "res5c_branch")
.addLayer("lrn1", new LocalResponseNormalization.Builder(5, 1e-4, 0.75).build(), "max1") .addLayer("cnn2", conv1x1(64, 64, 0.2), "lrn1").addLayer("cnn3", conv3x3(64, 192, 0.2), "cnn2") .addLayer("lrn2", new LocalResponseNormalization.Builder(5, 1e-4, 0.75).build(), "cnn3") .addLayer("max2", new SubsamplingLayer.Builder(new int[] {3, 3}, new int[] {2, 2}, new int[] {0, 0}).build(), "lrn2"); inception(graph, "3b", 256, new int[][] {{128}, {128, 192}, {32, 96}, {64}}, "3a-depthconcat1"); graph.addLayer("max3", new SubsamplingLayer.Builder(new int[] {3, 3}, new int[] {2, 2}, new int[] {0, 0}).build(), "3b-depthconcat1"); inception(graph, "4a", 480, new int[][] {{192}, {96, 208}, {16, 48}, {64}}, "3b-depthconcat1"); inception(graph, "4e", 528, new int[][] {{256}, {160, 320}, {32, 128}, {128}}, "4d-depthconcat1"); graph.addLayer("max4", new SubsamplingLayer.Builder(new int[] {3, 3}, new int[] {2, 2}, new int[] {0, 0}).build(), "4e-depthconcat1"); inception(graph, "5a", 832, new int[][] {{256}, {160, 320}, {32, 128}, {128}}, "max4");
public MultiLayerConfiguration conf() { MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().trainingWorkspaceMode(workspaceMode) .inferenceWorkspaceMode(workspaceMode).seed(seed).iterations(iterations) .activation(Activation.IDENTITY).weightInit(WeightInit.XAVIER) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).updater(new AdaDelta()) .regularization(false).convolutionMode(ConvolutionMode.Same).list() // block 1 .layer(0, new ConvolutionLayer.Builder(new int[] {5, 5}, new int[] {1, 1}).name("cnn1") .nIn(inputShape[0]).nOut(20).activation(Activation.RELU).build()) .layer(1, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] {2, 2}, new int[] {2, 2}).name("maxpool1").build()) // block 2 .layer(2, new ConvolutionLayer.Builder(new int[] {5, 5}, new int[] {1, 1}).name("cnn2").nOut(50) .activation(Activation.RELU).build()) .layer(3, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] {2, 2}, new int[] {2, 2}).name("maxpool2").build()) // fully connected .layer(4, new DenseLayer.Builder().name("ffn1").activation(Activation.RELU).nOut(500).build()) // output .layer(5, new OutputLayer.Builder(LossFunctions.LossFunction.MCXENT).name("output") .nOut(numLabels).activation(Activation.SOFTMAX) // radial basis function required .build()) .setInputType(InputType.convolutionalFlat(inputShape[2], inputShape[1], inputShape[0])) .backprop(true).pretrain(false).build(); return conf; }
/** * Constructor from parsed Keras layer configuration dictionary. * * @param layerConfig dictionary containing Keras layer configuration * @param enforceTrainingConfig whether to enforce training-related configuration options * @throws InvalidKerasConfigurationException * @throws UnsupportedKerasConfigurationException */ public KerasPooling(Map<String, Object> layerConfig, boolean enforceTrainingConfig) throws InvalidKerasConfigurationException, UnsupportedKerasConfigurationException { super(layerConfig, enforceTrainingConfig); SubsamplingLayer.Builder builder = new SubsamplingLayer.Builder(mapPoolingType(this.className)) .name(this.layerName).dropOut(this.dropout) .convolutionMode(getConvolutionModeFromConfig(layerConfig)) .kernelSize(getKernelSizeFromConfig(layerConfig)).stride(getStrideFromConfig(layerConfig)); int[] padding = getPaddingFromBorderModeConfig(layerConfig); if (padding != null) builder.padding(padding); this.layer = builder.build(); this.vertex = null; }
public static SubsamplingLayer maxPool3x3(int stride) { return new SubsamplingLayer.Builder(new int[] {3, 3}, new int[] {stride, stride}, new int[] {1, 1}).build(); }
private SubsamplingLayer maxPool3x3(int stride) { return new SubsamplingLayer.Builder(new int[] {3, 3}, new int[] {stride, stride}, new int[] {1, 1}).build(); }
private static SubsamplingLayer maxPool(String name, int[] kernel) { return new SubsamplingLayer.Builder(kernel, new int[]{2,2}).name(name).build(); }
public static SubsamplingLayer avgPoolNxN(int size, int stride) { return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.AVG, new int[] {size, size}, new int[] {stride, stride}).build(); }
public static SubsamplingLayer avgPool7x7(int stride) { return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.AVG, new int[] {7, 7}, new int[] {1, 1}) .build(); }
private SubsamplingLayer avgPool7x7(int stride) { return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.AVG, new int[] {7, 7}, new int[] {1, 1}) .build(); }
public static SubsamplingLayer maxPoolNxN(int size, int stride) { return new SubsamplingLayer.Builder(new int[] {size, size}, new int[] {stride, stride}, new int[] {1, 1}) .build(); }
public static SubsamplingLayer pNormNxN(int pNorm, int size, int stride) { return new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.PNORM, new int[] {size, size}, new int[] {stride, stride}).pnorm(pNorm).build(); }
@Override public SubsamplingLayer getValue(double[] values) { SubsamplingLayer.Builder b = new SubsamplingLayer.Builder(); setLayerOptionsBuilder(b, values); return b.build(); }
.updater(new AdaGrad.Builder().learningRate(0.04).build()) .list() .layer(0, new ConvolutionLayer.Builder(10, 10) .nIn(3) //3 channels: RGB .nOut(30)
public static MultiLayerNetwork lenetModel() { /** * Revisde Lenet Model approach developed by ramgo2 achieves slightly above random * Reference: https://gist.github.com/ramgo2/833f12e92359a2da9e5c2fb6333351c5 **/ MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .seed(seed) .l2(0.005) // tried 0.0001, 0.0005 .activation(Activation.RELU) .weightInit(WeightInit.XAVIER) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .updater(new Nesterovs(0.0001,0.9)) .list() .layer(0, new ConvolutionLayer.Builder(new int[]{5, 5}, new int[]{1, 1}, new int[]{0, 0}).name("cnn1") .nIn(channels).nOut(50).biasInit(0).build()) .layer(1, new SubsamplingLayer.Builder(new int[]{2,2}, new int[]{2,2}).name("maxpool1").build()) .layer(2, new ConvolutionLayer.Builder(new int[]{5,5}, new int[]{5, 5}, new int[]{1, 1}).name("cnn2") .nOut(100).biasInit(0).build()) .layer(3, new SubsamplingLayer.Builder(new int[]{2,2}, new int[]{2,2}).name("maxpool2").build()) .layer(4, new DenseLayer.Builder().nOut(500).build()) .layer(5, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD) .nOut(4) .activation(Activation.SOFTMAX) .build()) .backprop(true).pretrain(false) .setInputType(InputType.convolutional(height, width, channels)) .build(); return new MultiLayerNetwork(conf); }
public static MultiLayerConfiguration lenetModelConf() { MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .seed(seed) .l2(0.005) .activation(Activation.RELU) .weightInit(WeightInit.XAVIER) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .updater(new Nesterovs(0.0001, 0.9)) .list() .layer(0, new ConvolutionLayer.Builder(new int[]{5, 5}, new int[]{1, 1}, new int[]{0, 0}).name("cnn1") .nIn(channels).nOut(50).biasInit(0).build()) .layer(1, new SubsamplingLayer.Builder(new int[]{2,2}, new int[]{2,2}).name("maxpool1").build()) .layer(2, new ConvolutionLayer.Builder(new int[]{5,5}, new int[]{5, 5}, new int[]{1, 1}).name("cnn2") .nOut(100).biasInit(0).build()) .layer(3, new SubsamplingLayer.Builder(new int[]{2,2}, new int[]{2,2}).name("maxpool2").build()) .layer(4, new DenseLayer.Builder().nOut(500).build()) .layer(5, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD) .nOut(4) .activation(Activation.SOFTMAX) .build()) .backprop(true).pretrain(false) .setInputType(InputType.convolutional(height, width, channels)) .build(); return conf; } public static void saveModel(FileSystem fs, Model model ) throws Exception{