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(); } }
.regularization(true).dropOut(0.2) .learningRate(learnRate) .graphBuilder() .addInputs("input") .addLayer("cnn3", new ConvolutionLayer.Builder()
NeuralNetConfiguration.Builder modelBuilder = new NeuralNetConfiguration.Builder(); ComputationGraphConfiguration.GraphBuilder graphBuilder = modelBuilder.graphBuilder();
.updater(new Adam(0.1, 0.9, 0.999, 0.01)).weightInit(WeightInit.RELU).regularization(true) .l2(5e-5).learningRate(0.1).miniBatch(true).convolutionMode(ConvolutionMode.Same) .graphBuilder();
.updater(new RmsProp(0.1, 0.96, 0.001)).weightInit(WeightInit.DISTRIBUTION) .dist(new NormalDistribution(0.0, 0.5)).regularization(true).l2(5e-5).miniBatch(true) .convolutionMode(ConvolutionMode.Truncate).graphBuilder();
.weightInit(WeightInit.XAVIER).graphBuilder().addInputs("input") .addLayer("dense1", new DenseLayer.Builder().nIn(numInputs).nOut(nOut0) .weightInit(WEIGHT_INIT)
.weightInit(WeightInit.XAVIER).graphBuilder().addInputs("input") .addLayer("dense1", new DenseLayer.Builder().nIn(numInputs).nOut(nOut0) .weightInit(WEIGHT_INIT)
.weightInit(WeightInit.XAVIER).graphBuilder().addInputs("input") .addLayer("dense1", new DenseLayer.Builder().nIn(numInputs).nOut(numHiddenNodes) .weightInit(WEIGHT_INIT)
.updater(new RmsProp(0.1, 0.96, 0.001)).weightInit(WeightInit.DISTRIBUTION) .dist(new NormalDistribution(0.0, 0.5)).regularization(true).l1(1e-7).l2(5e-5).miniBatch(true) .convolutionMode(ConvolutionMode.Truncate).graphBuilder();
.learningRate(1e-2).biasLearningRate(2 * 1e-2).learningRateDecayPolicy(LearningRatePolicy.Step) .lrPolicyDecayRate(0.96).lrPolicySteps(320000).updater(new Nesterovs(1e-2, 0.9)) .weightInit(WeightInit.XAVIER).regularization(true).l2(2e-4).graphBuilder();
.builder() .seed(getSeed()) .graphBuilder() .backpropType(BackpropType.TruncatedBPTT) .tBPTTBackwardLength(tBPTTbackwardLength)
.trainingWorkspaceMode(Preferences.WORKSPACE_MODE) .inferenceWorkspaceMode(Preferences.WORKSPACE_MODE) .graphBuilder(); List<NeuralNetConfiguration> confs = mlc.getConfs();
@Override public GraphConfiguration getValue(double[] values) { //Create ComputationGraphConfiguration... NeuralNetConfiguration.Builder builder = randomGlobalConf(values); ComputationGraphConfiguration.GraphBuilder graphBuilder = builder.graphBuilder(); graphBuilder.addInputs(this.networkInputs); graphBuilder.setOutputs(this.networkOutputs); if (inputTypes != null) graphBuilder.setInputTypes(inputTypes.getValue(values)); //Build/add our layers and vertices: for (LayerConf c : layerSpaces) { org.deeplearning4j.nn.conf.layers.Layer l = c.layerSpace.getValue(values); graphBuilder.addLayer(c.getLayerName(), l, c.getInputs()); } for (VertexConf gv : vertices) { graphBuilder.addVertex(gv.getVertexName(), gv.getGraphVertex(), gv.getInputs()); } if (backprop != null) graphBuilder.backprop(backprop.getValue(values)); if (pretrain != null) graphBuilder.pretrain(pretrain.getValue(values)); if (backpropType != null) graphBuilder.backpropType(backpropType.getValue(values)); if (tbpttFwdLength != null) graphBuilder.tBPTTForwardLength(tbpttFwdLength.getValue(values)); if (tbpttBwdLength != null) graphBuilder.tBPTTBackwardLength(tbpttBwdLength.getValue(values)); ComputationGraphConfiguration configuration = graphBuilder.build(); return new GraphConfiguration(configuration, earlyStoppingConfiguration, numEpochs); }
public void initializeBuilder(String... inputNames) { if (inputNames.length == 0) { inputNames = new String[]{"input"}; } NeuralNetConfiguration.Builder graphBuilder = new NeuralNetConfiguration.Builder() .seed(args().seed) .iterations(1) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .learningRate(args().learningRate) .updater(Updater.ADAGRAD) .epsilon(BUILDER_EPSILON) .lrPolicyDecayRate(0.5) .weightInit(WEIGHT_INIT); if (args().regularizationRate != null) { graphBuilder.l2(args().regularizationRate); graphBuilder.regularization(args().regularizationRate != null); } if (args().dropoutRate != null) { graphBuilder.dropOut(args().dropoutRate); graphBuilder.setUseDropConnect(true); } modelCapacity=args().modelCapacity; reductionRate=args().reductionRate; build = graphBuilder.graphBuilder().addInputs(inputNames); }
/** * Build the multilayer network defined by the networkconfiguration and the list of layers. */ protected void createModel() throws Exception { final INDArray features = getFirstBatchFeatures(trainData); ComputationGraphConfiguration.GraphBuilder gb = netConfig.builder().seed(getSeed()).graphBuilder(); // Set ouput size final Layer lastLayer = layers[layers.length - 1]; final int nOut = trainData.numClasses(); if (lastLayer instanceof FeedForwardLayer) { ((FeedForwardLayer) lastLayer).setNOut(nOut); } if (getInstanceIterator() instanceof CnnTextEmbeddingInstanceIterator) { makeCnnTextLayerSetup(gb); } else { makeDefaultLayerSetup(gb); } gb.setInputTypes(InputType.inferInputType(features)); ComputationGraphConfiguration conf = gb.pretrain(false).backprop(true).build(); ComputationGraph model = new ComputationGraph(conf); model.init(); this.model = model; }
public static void main(String[] args) throws Exception { //Define a simple ComputationGraph: ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder() .weightInit(WeightInit.XAVIER) .updater(new Nesterovs(0.01, 0.9)) .graphBuilder() .addInputs("in") .addLayer("layer0", new DenseLayer.Builder().nIn(4).nOut(3).activation(Activation.TANH).build(), "in") .addLayer("layer1", new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD).activation(Activation.SOFTMAX).nIn(3).nOut(3).build(), "layer0") .setOutputs("layer1") .backprop(true).pretrain(false).build(); ComputationGraph net = new ComputationGraph(conf); net.init(); //Save the model File locationToSave = new File("model/MyComputationGraph.zip"); //Where to save the network. Note: the file is in .zip format - can be opened externally boolean saveUpdater = true; //Updater: i.e., the state for Momentum, RMSProp, Adagrad etc. Save this if you want to train your network more in the future ModelSerializer.writeModel(net, locationToSave, saveUpdater); //Load the model ComputationGraph restored = ModelSerializer.restoreComputationGraph(locationToSave); System.out.println("Saved and loaded parameters are equal: " + net.params().equals(restored.params())); System.out.println("Saved and loaded configurations are equal: " + net.getConfiguration().equals(restored.getConfiguration())); }
.updater(new AMSGrad(lrSchedule)) .weightInit(WeightInit.RELU) .graphBuilder() .addInputs("input") .setOutputs("output");