.layer(0, new ConvolutionLayer.Builder(5, 5) .nIn(NUM_CHANNELS) .nOut(80).l2(0.0000005) .activation(Activation.RELU) .build()) .layer(3, new ConvolutionLayer.Builder(5, 5) .nOut(64) .activation(Activation.RELU).l2(0.0000005) .build()) .layer(4, new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX)
/** * 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(); }