.layer(0, new DenseLayer.Builder().nIn(numInputs).nOut(numHiddenNodes) .weightInit(WEIGHT_INIT) .activation("relu").learningRateDecayPolicy(learningRatePolicy) .layer(1,new BatchNormalization.Builder().nOut( (numHiddenNodes)) .build()) .layer(2, new DenseLayer.Builder().nIn(numHiddenNodes).nOut((int) (numHiddenNodes * reduction)) .weightInit(WEIGHT_INIT) .activation("relu").learningRateDecayPolicy(learningRatePolicy)
@ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @Builder public class BatchNormalization extends FeedForwardLayer {
new ConvolutionLayer.Builder(new int[] {7, 7}, new int[] {2, 2}, new int[] {3, 3}).nIn(inputShape[0]).nOut(64) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE) new ConvolutionLayer.Builder(new int[] {1, 1}).nIn(64).nOut(64) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), "stem-lrn1") "inception-2-batch1") .addLayer("inception-2-cnn2", new ConvolutionLayer.Builder(new int[] {3, 3}, new int[] {1, 1}, new int[] {1, 1}).nIn(64).nOut(192) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
new ConvolutionLayer.Builder(new int[] {3, 3}, new int[] {2, 2}) .nIn(inputShape[0]).nOut(32) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), "stem-cnn1") .addLayer("stem-cnn2", new ConvolutionLayer.Builder(new int[] {3, 3}).nIn(32).nOut(32) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), "stem-batch1") "stem-cnn2") .addLayer("stem-cnn3", new ConvolutionLayer.Builder(new int[] {3, 3}) .convolutionMode(ConvolutionMode.Same).nIn(32).nOut(64) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), new ConvolutionLayer.Builder(new int[] {1, 1}).nIn(64).nOut(80) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), "stem-pool4") "stem-cnn5") .addLayer("stem-cnn6", new ConvolutionLayer.Builder(new int[] {3, 3}).nIn(80).nOut(128) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE).build(), "stem-batch5") "stem-cnn6") .addLayer("stem-cnn7", new ConvolutionLayer.Builder(new int[] {3, 3}, new int[] {2, 2}).nIn(128)
previousBlock) .addLayer(nameLayer(blockName, "batch1", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(32) .nOut(32).build(), nameLayer(blockName, "cnn1", i)) previousBlock) .addLayer(nameLayer(blockName, "batch2", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(32) .nOut(32).build(), nameLayer(blockName, "cnn2", i)) nameLayer(blockName, "batch2", i)) .addLayer(nameLayer(blockName, "batch3", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(32) .nOut(32).build(), nameLayer(blockName, "cnn3", i)) previousBlock) .addLayer(nameLayer(blockName, "batch4", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(32) .nOut(32).build(), nameLayer(blockName, "cnn4", i)) nameLayer(blockName, "batch4", i)) .addLayer(nameLayer(blockName, "batch5", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(32) .nOut(32).build(), nameLayer(blockName, "cnn5", i))
previousBlock) .addLayer(nameLayer(blockName, "batch1", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(128) .nOut(128).build(), nameLayer(blockName, "cnn1", i)) previousBlock) .addLayer(nameLayer(blockName, "batch2", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(128) .nOut(128).build(), nameLayer(blockName, "cnn2", i)) nameLayer(blockName, "batch2", i)) .addLayer(nameLayer(blockName, "batch3", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(128) .nOut(128).build(), nameLayer(blockName, "cnn3", i)) nameLayer(blockName, "batch3", i)) .addLayer(nameLayer(blockName, "batch4", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(128) .nOut(128).build(), nameLayer(blockName, "cnn4", i)) nameLayer(blockName, "merge1", i)) .addLayer(nameLayer(blockName, "batch5", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(576) .nOut(576).build(), nameLayer(blockName, "cnn5", i))
previousBlock) .addLayer(nameLayer(blockName, "batch1", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192) .nOut(192).build(), nameLayer(blockName, "cnn1", i)) previousBlock) .addLayer(nameLayer(blockName, "batch2", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192) .nOut(192).build(), nameLayer(blockName, "cnn2", i)) nameLayer(blockName, "batch2", i)) .addLayer(nameLayer(blockName, "batch3", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192) .nOut(192).build(), nameLayer(blockName, "cnn3", i)) nameLayer(blockName, "batch3", i)) .addLayer(nameLayer(blockName, "batch4", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001) .activation(Activation.TANH).nIn(192).nOut(192).build(), nameLayer(blockName, "cnn4", i)) nameLayer(blockName, "merge1", i)) .addLayer(nameLayer(blockName, "batch5", i), new BatchNormalization.Builder(false).decay(0.995).eps(0.001) .activation(Activation.TANH).nIn(1344).nOut(1344).build(), nameLayer(blockName, "cnn5", i))
.layer(0, new ConvolutionLayer.Builder(new int[] {7, 7}).name("image_array") .nIn(inputShape[0]).nOut(16).build()) .layer(1, new BatchNormalization.Builder().build()) .layer(2, new ConvolutionLayer.Builder(new int[] {7, 7}).nIn(16).nOut(16) .build()) .layer(3, new BatchNormalization.Builder().build()) .layer(7, new ConvolutionLayer.Builder(new int[] {5, 5}).nOut(32).build()) .layer(8, new BatchNormalization.Builder().build()) .layer(9, new ConvolutionLayer.Builder(new int[] {5, 5}).nOut(32).build()) .layer(10, new BatchNormalization.Builder().build()) .layer(11, new ActivationLayer.Builder().activation(Activation.RELU).build()) .layer(14, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(64).build()) .layer(15, new BatchNormalization.Builder().build()) .layer(16, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(64).build()) .layer(17, new BatchNormalization.Builder().build()) .layer(18, new ActivationLayer.Builder().activation(Activation.RELU).build()) .layer(21, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(128).build()) .layer(22, new BatchNormalization.Builder().build()) .layer(23, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(128).build()) .layer(24, new BatchNormalization.Builder().build()) .layer(25, new ActivationLayer.Builder().activation(Activation.RELU).build()) .layer(28, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(256).build()) .layer(29, new BatchNormalization.Builder().build()) .layer(30, new ConvolutionLayer.Builder(new int[] {3, 3}).nOut(numLabels)
/** * 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 KerasBatchNormalization(Map<String, Object> layerConfig, boolean enforceTrainingConfig) throws InvalidKerasConfigurationException, UnsupportedKerasConfigurationException { super(layerConfig, enforceTrainingConfig); getGammaRegularizerFromConfig(layerConfig, enforceTrainingConfig); getBetaRegularizerFromConfig(layerConfig, enforceTrainingConfig); int batchNormMode = getBatchNormMode(layerConfig, enforceTrainingConfig); int batchNormAxis = getBatchNormAxis(layerConfig, enforceTrainingConfig); this.layer = new BatchNormalization.Builder().name(this.layerName).dropOut(this.dropout).minibatch(true) .lockGammaBeta(false).eps(getEpsFromConfig(layerConfig)) .momentum(getMomentumFromConfig(layerConfig)).build(); }
public static BatchNormalization batchNorm(int in, int out) { return new BatchNormalization.Builder(false).nIn(in).nOut(out).build(); }
@Override public BatchNormalization getValue(double[] parameterValues) { BatchNormalization.Builder b = new BatchNormalization.Builder(); setLayerOptionsBuilder(b, parameterValues); return b.build(); }