.activation(Activation.TANH).build()) .layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT).nIn(256).nOut(2).build()) .pretrain(false).backprop(true).build();
.layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT).nIn(200) .nOut(outputs).build()) .pretrain(false).backprop(true).build();
.layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD) .nIn(200).nOut(maxTagsetSize).build()) .pretrain(false).backprop(true).build();
.nOut(aTraits.getMaxTagsetSize()) .activation(aTraits.getActivationL1()) .lossFunction(aTraits.getLossFunction()) .build()) .pretrain(false)
.nOut(aTraits.getMaxTagsetSize()) .activation(aTraits.getActivationL1()) .lossFunction(aTraits.getLossFunction()) .build()) .pretrain(false)
.nOut(totalOutcomes) .activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT) .build()) .pretrain(false)
public static MultiLayerNetwork train(WordVectors wordVectors, ObjectStream<NameSample> samples, int epochs, int windowSize, String[] labels) throws IOException { int vectorSize = 300; int layerSize = 256; MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .updater(new RmsProp(0.01)).l2(0.001) .weightInit(WeightInit.XAVIER) .list() .layer(0, new GravesLSTM.Builder().nIn(vectorSize).nOut(layerSize) .activation(Activation.TANH).build()) .layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT).nIn(layerSize).nOut(3).build()) .pretrain(false).backprop(true).build(); MultiLayerNetwork net = new MultiLayerNetwork(conf); net.init(); net.setListeners(new ScoreIterationListener(5)); // TODO: Extract labels on the fly from the data DataSetIterator train = new NameSampleDataSetIterator(samples, wordVectors, windowSize, labels); System.out.println("Starting training"); for (int i = 0; i < epochs; i++) { net.fit(train); train.reset(); System.out.println(String.format("Finished epoch %d", i)); } return net; }
public Builder(LossFunction lossFunction) { lossFunction(lossFunction); }