Example usage for org.deeplearning4j.nn.weights WeightInit RELU

List of usage examples for org.deeplearning4j.nn.weights WeightInit RELU

Introduction

In this page you can find the example usage for org.deeplearning4j.nn.weights WeightInit RELU.

Prototype

WeightInit RELU

To view the source code for org.deeplearning4j.nn.weights WeightInit RELU.

Click Source Link

Usage

From source file:com.javafxpert.neuralnetviz.scenario.WineClassifier.java

License:Apache License

public static MultiLayerNetworkEnhanced buildNetwork(WebSocketSession webSocketSession) throws Exception {
    //Load the training data:
    RecordReader rr = new CSVRecordReader();
    rr.initialize(new FileSplit((new File("src/main/resources/classification/wine.data"))));

    DataSetIterator iterator = new RecordReaderDataSetIterator(rr, FILE_SIZE, CLASS_INDEX, NUM_OF_CLASSES);
    DataSet wineData = iterator.next();/*from  w  w w .ja  va  2 s  .  com*/
    wineData.shuffle();
    SplitTestAndTrain testAndTrain = wineData.splitTestAndTrain(DATA_SPLIT_TRAIN_TEST);
    DataSet trainingData = testAndTrain.getTrain();
    DataSet testData = testAndTrain.getTest();

    // A Standard Normalizer which gives zero-mean, unit variance
    DataNormalization normalizer = new NormalizerStandardize();
    normalizer.fit(trainingData); // Collect the statistics (mean/stdev) from the training data. This does not modify the input data
    normalizer.transform(trainingData); // Apply normalization to the training data
    normalizer.transform(testData); // Apply normalization to the test data. This is using statistics calculated from the *training* set

    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(SEED).iterations(ITERATIONS)
            .weightInit(WeightInit.RELU).optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
            .learningRate(EPSILON).regularization(true).l2(1e-4).updater(Updater.NESTEROVS).momentum(ALPHA)
            .list()
            .layer(0,
                    new DenseLayer.Builder().nIn(INPUT_NEURONS).nOut(HIDDEN_NEURONS)
                            .activation(HIDDEN_LAYER_ACTIVATION).build())
            .layer(1,
                    new OutputLayer.Builder(LossFunction.NEGATIVELOGLIKELIHOOD).nIn(HIDDEN_NEURONS)
                            .nOut(OUTPUT_NEURONS).activation(OUTPUT_LAYER_ACTIVATION).build())
            .pretrain(false).backprop(true).build();

    String[] inputFeatureNames = { "Alcohol (11.0-14.9)", "Malic acid (0.7-5.8)", "Ash (1.3-3.3)",
            "Alcalinity of ash (10.6-30.0)", "Magnesium (70-162)", "Total phenols (0.9-3.9)",
            "Flavanoids (0.30-5.1)", "Nonflavanoid phenols (0.1-0.7)", "Proanthocyanins (0.4-3.6)",
            "Color intensity (1.2-13.0)", "Hue (0.4-1.8)", "OD280/OD315 of diluted (1.2-4.0)",
            "Proline (278-1680)" };
    String[] outputLabelNames = { "Cultivar A", "Cultivar B", "Cultivar C" };
    MultiLayerNetworkEnhanced networkModel = new MultiLayerNetworkEnhanced(conf, inputFeatureNames,
            outputLabelNames);
    networkModel.init();
    //model.setListeners(new ScoreIterationListener(100));    //Print score every 100 parameter updates
    networkModel.setListeners(new ModelListener(10, webSocketSession));
    networkModel.setDataNormalization(normalizer);

    for (int n = 0; n < EPOCHS; n++) {
        networkModel.fit(trainingData);
    }

    System.out.println("Evaluate model....");
    Evaluation eval = new Evaluation(OUTPUT_NEURONS);
    INDArray output = networkModel.output(testData.getFeatureMatrix());

    System.out.println(testData.getFeatureMatrix());
    System.out.println(output);

    eval.eval(testData.getLabels(), output);

    //Print the evaluation statistics
    System.out.println(eval.stats());

    return networkModel;

}

From source file:org.wso2.carbon.ml.rest.api.neuralNetworks.FeedForwardNetwork.java

License:Open Source License

/**
 * method to map user selected WeightInit Algorithm to WeightInit object.
 * @param weightinit/*from w  w  w.j a v a  2 s .c o m*/
 * @return an WeightInit object .
 */
WeightInit mapWeightInit(String weightinit) {

    WeightInit weightInitAlgo = null;

    switch (weightinit) {

    case "Distribution":
        weightInitAlgo = WeightInit.DISTRIBUTION;
        break;

    case "Normalized":
        weightInitAlgo = WeightInit.NORMALIZED;
        break;

    case "Size":
        weightInitAlgo = WeightInit.SIZE;
        break;

    case "Uniform":
        weightInitAlgo = WeightInit.UNIFORM;
        break;

    case "Vi":
        weightInitAlgo = WeightInit.VI;
        break;

    case "Zero":
        weightInitAlgo = WeightInit.ZERO;
        break;

    case "Xavier":
        weightInitAlgo = WeightInit.XAVIER;
        break;

    case "RELU":
        weightInitAlgo = WeightInit.RELU;
        break;

    default:
        weightInitAlgo = null;
        break;
    }

    return weightInitAlgo;
}

From source file:seqmodel.RNNModel.java

MultiLayerNetwork buildRNN(AMISentenceIterator iter) {

    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(SEED).iterations(10)
            .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
            //.optimizationAlgo(OptimizationAlgorithm.LBFGS)
            //.optimizationAlgo(OptimizationAlgorithm.CONJUGATE_GRADIENT)
            .updater(Updater.RMSPROP)//from  www  .  j av  a  2s  .  co  m
            //.updater(Updater.ADAGRAD)
            //.updater(Updater.SGD)
            //.regularization(true).l2(0.0001)
            //.regularization(true).l1(0.001)
            .weightInit(WeightInit.RELU)
            //.weightInit(WeightInit.UNIFORM)
            //.weightInit(WeightInit.XAVIER)
            //.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue).gradientNormalizationThreshold(1.0)
            .gradientNormalization(GradientNormalization.RenormalizeL2PerLayer)
            .gradientNormalizationThreshold(1.0).learningRate(0.001).list(2)
            .layer(0, new GravesLSTM.Builder().nIn(numInputDimensions).nOut(NUM_DIMENSIONS_LSTM)
                    //.activation("softsign").build())
                    .activation("softmax")
                    //.activation("tanh")
                    .build())
            /*        
            .layer(1,
                    new GravesLSTM.Builder()
                    .nIn(25)
                    .nOut(NUM_DIMENSIONS_LSTM)
                    //.activation("softsign").build())
                    .activation("softmax")
                    //.activation("tanh")
                    .build())
            */
            .layer(1, new RnnOutputLayer.Builder().activation("softmax")
                    //.activation("tanh")
                    //.activation("sigmoid")
                    //.lossFunction(LossFunctions.LossFunction.MCXENT)
                    .lossFunction(LossFunctions.LossFunction.RMSE_XENT).nIn(NUM_DIMENSIONS_LSTM).nOut(2) // 2 for binary classification
                    .build())
            .backpropType(BackpropType.TruncatedBPTT).tBPTTForwardLength(TRUNCATED_BPP_LEN)
            .tBPTTBackwardLength(TRUNCATED_BPP_LEN)
            //.backpropType(BackpropType.Standard)
            .pretrain(false).backprop(true).build();

    MultiLayerNetwork net = new MultiLayerNetwork(conf);
    net.init();
    net.setListeners(new ScoreIterationListener(1));
    return net;
}