.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) .build()) .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() .poolingType(SubsamplingLayer.PoolingType.MAX).kernelSize(2, 2) .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() .poolingType(SubsamplingLayer.PoolingType.MAX).kernelSize(2, 2) .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(14, 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) .build()) .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() .poolingType(SubsamplingLayer.PoolingType.MAX).kernelSize(2, 2) .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() .poolingType(SubsamplingLayer.PoolingType.MAX).kernelSize(2, 2) .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() .poolingType(SubsamplingLayer.PoolingType.MAX).kernelSize(2, 2)
/** * 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)); }