I would like to implement a simple neural network with DeepLearning4J in Java. I took the programme code from a website.
The compiler generates the following error message at the marked position in my code: Mehtod list in class Builder cannot be applied to the specified types. Can anyone tell me why I am getting this error message?
package com.mycompany.testnn;
import .deeplearning4j.eval.Evaluation;
import .deeplearning4j.nn.WeightInit;
import .deeplearning4j.nn.conf.MultiLayerConfiguration;
import .deeplearning4j.nn.conf.NeuralNetConfiguration;
import .deeplearning4j.nn.conf.layers.DenseLayer;
import .deeplearning4j.nn.conf.layers.OutputLayer;
import .deeplearning4j.nn.multilayer.MultiLayerNetwork;
import .nd4j.linalg.activations.Activation;
import .nd4j.linalg.api.ndarray.INDArray;
import .nd4j.linalg.dataset.DataSet;
import .nd4j.linalg.factory.Nd4j;
import .nd4j.linalg.lossfunctions.LossFunctions;
public class TestNN
{
public static void main(String[] args)
{
INDArray input = Nd4j.zeros(4, 2);
INDArray knownOutput = Nd4j.zeros(4, 1);
DataSet dataSet;
MultiLayerConfiguration cfg;
//----- loading data -----
input.putScalar(new int[]{0, 0}, 0);
input.putScalar(new int[]{0, 1}, 0);
input.putScalar(new int[]{1, 0}, 0);
input.putScalar(new int[]{1, 1}, 1);
input.putScalar(new int[]{2, 0}, 1);
input.putScalar(new int[]{2, 1}, 0);
input.putScalar(new int[]{3, 0}, 1);
input.putScalar(new int[]{3, 1}, 1);
knownOutput.putScalar(new int[]{0}, 0);
knownOutput.putScalar(new int[]{1}, 1);
knownOutput.putScalar(new int[]{2}, 1);
knownOutput.putScalar(new int[]{3}, 0);
dataSet = new DataSet(input, knownOutput);
//------ setup a model
cfg = new NeuralNetConfiguration.Builder()
.weightInit(WeightInit.DISTRIBUTION)
----> .list()
.layer(0,new DenseLayer.Builder()
.activation(Activation.SIGMOID)
.nIn(2)
.nOut(3)
.build())
.layer(1,new OutputLayer.Builder(LossFunctions.LossFunction.MSE)
.activation(Activation.SIGMOID)
.nIn(3)
.nOut(1)
.build())
.build();
MultiLayerNetwork network = new MultiLayerNetwork(cfg);
network.init();
network.setLearningRate(0.7);
System.out.println(network.summary());
//----- training the Model -----
for( int i=0; i < 10000; i++ )
{
network.fit(dataSet);
}
//----- testing the Model -----
INDArray output = network.output(input);
Evaluation eval = new Evaluation();
eval.eval(knownOutput, output);System.out.println(eval.stats());
}
}
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744965573a4603659.html
评论列表(0条)