Example usage for org.deeplearning4j.nn.conf Updater ADAGRAD

List of usage examples for org.deeplearning4j.nn.conf Updater ADAGRAD

Introduction

In this page you can find the example usage for org.deeplearning4j.nn.conf Updater ADAGRAD.

Prototype

Updater ADAGRAD

To view the source code for org.deeplearning4j.nn.conf Updater ADAGRAD.

Click Source Link

Usage

From source file:org.eigengo.rsa.identity.v100.DeepFaceVariant.java

License:Open Source License

public MultiLayerNetwork init() {
    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(seed).iterations(iterations)
            .activation("relu").weightInit(WeightInit.XAVIER)
            .gradientNormalization(GradientNormalization.RenormalizeL2PerLayer)
            .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).learningRate(0.01)
            .momentum(0.9).regularization(true).l2(1e-3).updater(Updater.ADAGRAD).useDropConnect(true).list()
            .layer(0,/*from   w  ww  .j a va2 s .  co m*/
                    new ConvolutionLayer.Builder(4, 4).name("cnn1").nIn(channels).stride(1, 1).nOut(20).build())
            .layer(1,
                    new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] { 2, 2 })
                            .name("pool1").build())
            .layer(2, new ConvolutionLayer.Builder(3, 3).name("cnn2").stride(1, 1).nOut(40).build())
            .layer(3,
                    new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] { 2, 2 })
                            .name("pool2").build())
            .layer(4, new ConvolutionLayer.Builder(3, 3).name("cnn3").stride(1, 1).nOut(60).build())
            .layer(5,
                    new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.MAX, new int[] { 2, 2 })
                            .name("pool3").build())
            .layer(6, new ConvolutionLayer.Builder(2, 2).name("cnn3").stride(1, 1).nOut(80).build())
            .layer(7, new DenseLayer.Builder().name("ffn1").nOut(160).dropOut(0.5).build())
            .layer(8,
                    new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD).nOut(numLabels)
                            .activation("softmax").build())
            .backprop(true).pretrain(false).cnnInputSize(height, width, channels).build();

    MultiLayerNetwork network = new MultiLayerNetwork(conf);
    network.init();
    return network;
}

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

License:Open Source License

/**
 * method to map user selected Updater Algorithm to Updater object.
 * @param updater//from   w  w  w . j  a  v a  2s .  c  om
 * @return an Updater object .
 */
Updater mapUpdater(String updater) {

    Updater updaterAlgo = null;

    switch (updater) {

    case "sgd":
        updaterAlgo = Updater.SGD;
        break;

    case "adam":
        updaterAlgo = Updater.ADAM;
        break;

    case "adadelta":
        updaterAlgo = Updater.ADADELTA;
        break;

    case "nesterovs":
        updaterAlgo = Updater.NESTEROVS;
        break;

    case "adagrad":
        updaterAlgo = Updater.ADAGRAD;
        break;

    case "rmsprop":
        updaterAlgo = Updater.RMSPROP;
        break;

    case "none":
        updaterAlgo = Updater.NONE;
        break;

    case "custom":
        updaterAlgo = Updater.CUSTOM;
        break;

    default:
        updaterAlgo = null;
        break;
    }
    return updaterAlgo;
}

From source file:vectorizer.Doc2Vec.java

MultiLayerNetwork buildAutoEncoder(int vocabSize, int iterations) {
    int[] numInputs = { vocabSize, 100, 25 };
    int seed = 100;

    /*//from  w ww.j  a v  a 2  s.  c  om
    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
        .seed(seed)
        .iterations(iterations)
        .momentum(0.1)
        .momentumAfter(Collections.singletonMap(10, 0.01))
        .optimizationAlgo(OptimizationAlgorithm.CONJUGATE_GRADIENT)
        .list(4)
        .layer(0, new RBM.Builder().nIn(vocabSize).nOut(numInputs[0])
                .lossFunction(LossFunctions.LossFunction.RMSE_XENT).build())
        .layer(1, new RBM.Builder().nIn(numInputs[0]).nOut(numInputs[1])
                .lossFunction(LossFunctions.LossFunction.RMSE_XENT).build())
        .layer(2, new RBM.Builder().lossFunction(LossFunctions.LossFunction.RMSE_XENT)
                .nIn(numInputs[1]).nOut(numInputs[2]).build())
        .layer(3, new RBM.Builder().lossFunction(LossFunctions.LossFunction.RMSE_XENT)
                .nIn(numInputs[2]).nOut(numInputs[3]).build())
        .pretrain(false)
        .build();
    */

    /*
    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
    .seed(seed)
    .gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue)
    .gradientNormalizationThreshold(1.0)
    .iterations(iterations)
    .momentum(0.5)
    .momentumAfter(Collections.singletonMap(3, 0.9))
    .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
    .list(3)
    .layer(0, new AutoEncoder.Builder().nIn(numInputs[0]).nOut(numInputs[1])
            .weightInit(WeightInit.XAVIER).lossFunction(LossFunctions.LossFunction.RMSE_XENT)
            .corruptionLevel(0.3)
            .build())
    .layer(1, new AutoEncoder.Builder().nIn(numInputs[1]).nOut(numInputs[2])
            .weightInit(WeightInit.XAVIER).lossFunction(LossFunctions.LossFunction.RMSE_XENT)
            .corruptionLevel(0.3)
            .build())
    //.layer(2, new AutoEncoder.Builder().nIn(numInputs[2]).nOut(numInputs[3])
    //        .weightInit(WeightInit.XAVIER).lossFunction(LossFunctions.LossFunction.RMSE_XENT)
    //        .corruptionLevel(0.3)
    //        .build())
    //.layer(2, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD).activation("softmax")
    //        .nIn(numInputs[2]).nOut(numInputs[3]).build())
    .layer(2, new OutputLayer.Builder(LossFunctions.LossFunction.RMSE_XENT)
            .nIn(numInputs[2]).nOut(numInputs[3]).build())
    .pretrain(true).backprop(false)
    .build();        
    */

    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(seed) // Locks in weight initialization for tuning      
            .iterations(iterations) // # training iterations predict/classify & backprop      
            .learningRate(1e-6f) // Optimization step size      
            .optimizationAlgo(OptimizationAlgorithm.CONJUGATE_GRADIENT) // Backprop to calculate gradients      
            .l1(1e-1).regularization(true).l2(2e-4).useDropConnect(true).list(2) // # NN layers (doesn't count input layer)      
            .layer(0, new RBM.Builder(RBM.HiddenUnit.RECTIFIED, RBM.VisibleUnit.GAUSSIAN).nIn(numInputs[0]) // # input nodes      
                    .nOut(numInputs[1]) // # fully connected hidden layer nodes. Add list if multiple layers.      
                    .weightInit(WeightInit.XAVIER) // Weight initialization      
                    .k(1) // # contrastive divergence iterations      
                    .activation("relu") // Activation function type      
                    .lossFunction(LossFunctions.LossFunction.RMSE_XENT) // Loss function type      
                    .updater(Updater.ADAGRAD).dropOut(0.5).build()) // NN layer type      
            .layer(1, new RBM.Builder(RBM.HiddenUnit.RECTIFIED, RBM.VisibleUnit.GAUSSIAN).nIn(numInputs[1]) // # input nodes      
                    .nOut(numInputs[2]) // # fully connected hidden layer nodes. Add list if multiple layers.      
                    .weightInit(WeightInit.XAVIER) // Weight initialization      
                    .k(1) // # contrastive divergence iterations      
                    .activation("relu") // Activation function type      
                    .lossFunction(LossFunctions.LossFunction.RMSE_XENT) // Loss function type      
                    .updater(Updater.ADAGRAD).dropOut(0.5).build()) // NN layer type      
            .build();

    MultiLayerNetwork model = new MultiLayerNetwork(conf);
    model.init();
    return model;
}