.addInputs("input") .addLayer("cnn3", new ConvolutionLayer.Builder() .kernelSize(3,vectorSize) .stride(1,vectorSize) .nIn(1) .build(), "input") .addLayer("cnn4", new ConvolutionLayer.Builder() .kernelSize(4,vectorSize) .stride(1,vectorSize) .nIn(1) .build(), "input") .addLayer("cnn5", new ConvolutionLayer.Builder() .kernelSize(5,vectorSize) .stride(1,vectorSize) .nIn(1)
.layer(0, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nIn(inputShape[0]).nOut(64) .cudnnAlgoMode(cudnnAlgoMode).build()) .layer(1, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(64).cudnnAlgoMode( cudnnAlgoMode) .layer(3, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(128).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(4, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(128).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(5, new SubsamplingLayer.Builder() .layer(6, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(7, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(8, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(9, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(10, new SubsamplingLayer.Builder() .layer(11, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(12, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(13, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build())
.layer(0, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nIn(inputShape[0]).nOut(64) .cudnnAlgoMode(cudnnAlgoMode).build()) .layer(1, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(64).cudnnAlgoMode( cudnnAlgoMode) .layer(3, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(128).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(4, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(128).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(5, new SubsamplingLayer.Builder() .layer(6, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(7, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(8, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(256).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(9, new SubsamplingLayer.Builder() .layer(10, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(11, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(12, new ConvolutionLayer.Builder().kernelSize(3, 3).stride(1, 1) .padding(1, 1).nOut(512).cudnnAlgoMode(cudnnAlgoMode).build()) .layer(13, new SubsamplingLayer.Builder()
/** * 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 KerasConvolution(Map<String, Object> layerConfig, boolean enforceTrainingConfig) throws InvalidKerasConfigurationException, UnsupportedKerasConfigurationException { super(layerConfig, enforceTrainingConfig); ConvolutionLayer.Builder builder = new ConvolutionLayer.Builder().name(this.layerName) .nOut(getNOutFromConfig(layerConfig)).dropOut(this.dropout) .activation(getActivationFromConfig(layerConfig)) .weightInit(getWeightInitFromConfig(layerConfig, enforceTrainingConfig)).biasInit(0.0) .l1(this.weightL1Regularization).l2(this.weightL2Regularization) .convolutionMode(getConvolutionModeFromConfig(layerConfig)) .kernelSize(getKernelSizeFromConfig(layerConfig)).stride(getStrideFromConfig(layerConfig)); int[] padding = getPaddingFromBorderModeConfig(layerConfig); if (padding != null) builder.padding(padding); this.layer = builder.build(); }
protected void setLayerOptionsBuilder(ConvolutionLayer.Builder builder, double[] values) { super.setLayerOptionsBuilder(builder, values); if (kernelSize != null) builder.kernelSize(kernelSize.getValue(values)); if (stride != null) builder.stride(stride.getValue(values)); if (padding != null) builder.padding(padding.getValue(values)); if (convolutionMode != null) builder.convolutionMode(convolutionMode.getValue(values)); }