public static ComputationGraphConfiguration getConf() { ComputationGraphConfiguration.GraphBuilder builder = new NeuralNetConfiguration.Builder() .seed(12345) .updater(new Adam(0.01)) .weightInit(WeightInit.RELU) .graphBuilder() .addInputs("in"); String[] poolNames = new String[ngramFilters.length]; int i = 0; for (int ngram : ngramFilters) { String filterName = String.format("ngram%d", ngram); poolNames[i] = String.format("pool%d", ngram); builder = builder.addLayer(filterName, new Convolution1DLayer.Builder() .nOut(numFilters) .kernelSize(ngram) .activation(Activation.RELU) .build(), "in") .addLayer(poolNames[i], new GlobalPoolingLayer.Builder(PoolingType.MAX).build(), filterName); i++; } return builder.addVertex("concat", new MergeVertex(), poolNames) .addLayer("predict", new DenseLayer.Builder().nOut(numClasses).dropOut(dropoutRetain) .activation(Activation.SOFTMAX).build(), "concat") .addLayer("loss", new LossLayer.Builder(LossFunctions.LossFunction.MCXENT).build(), "predict") .setOutputs("loss") .setInputTypes(InputType.recurrent(W2V_VECTOR_SIZE, 1000)) .build(); } }
.updater(new Nesterovs(0.008,0.9)) // new Adam(0.015D); new RmsProp(0.08D) .list() .layer(new DenseLayer.Builder().nIn(11).nOut(8).activation(Activation.RELU).dropOut(0.9).build()) .layer(new DenseLayer.Builder().nIn(8).nOut(6).activation(Activation.RELU).dropOut(0.9).build()) .layer(new DenseLayer.Builder().nIn(6).nOut(6).activation(Activation.RELU).dropOut(0.9).build()) .layer(new OutputLayer.Builder(new LossMCXENT(weightsArray)) .nIn(6).nOut(2).activation(Activation.SOFTMAX).build())
.build()) .layer(5, new LocalResponseNormalization.Builder().build()) .layer(6, new DenseLayer.Builder().nOut(1024).dropOut(dropOut).activation(Activation.RELU).build()) .layer(7, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD) .nOut(NUM_LABELS)
.name("maxpool3").build()) .layer(8, new DenseLayer.Builder().name("ffn1").nIn(256).nOut(4096) .dist(new GaussianDistribution(0, 0.005)).biasInit(nonZeroBias).dropOut(dropOut) .build()) .layer(9, new DenseLayer.Builder().name("ffn2").nOut(4096) .dist(new GaussianDistribution(0, 0.005)).biasInit(nonZeroBias).dropOut(dropOut) .build()) .layer(10, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
/** * 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 KerasDense(Map<String, Object> layerConfig, boolean enforceTrainingConfig) throws InvalidKerasConfigurationException, UnsupportedKerasConfigurationException { super(layerConfig, enforceTrainingConfig); this.layer = new DenseLayer.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).build(); }
public static DenseLayer fullyConnected(int in, int out, double dropOut) { return new DenseLayer.Builder().nIn(in).nOut(out).dropOut(dropOut).build(); }
private DenseLayer fullyConnected(int in, int out, double dropOut) { return new DenseLayer.Builder().nIn(in).nOut(out).dropOut(dropOut).build(); }
private static DenseLayer fullyConnected(String name, int out, double bias, double dropOut, Distribution dist) { return new DenseLayer.Builder().name(name).nOut(out).biasInit(bias).dropOut(dropOut).dist(dist).build(); }