经过调试发现Neuroph 有问题,有问题,自己用代码训练NullPointerException,beforeEpoch

来源:互联网 发布:springmvc源码包 编辑:程序博客网 时间:2024/04/29 23:57

经过调试发现Neuroph 有问题,有问题,自己用代码训练NullPointerExceptionbeforeEpoch

经过调试发现Neuroph有问题,自己用代码训练NullPointerExceptionbeforeEpoch

BackPropagation dp = new BackPropagation();          

                     dp.setNeuralNetwork(neuralNetwork);              

                     neuralNetwork.setLearningRule(dp);

             dp.doOneLearningIteration(trainingSet);---》内部机制问题

Exception in thread"main" java.lang.NullPointerException

    atorg.neuroph.core.learning.SupervisedLearning.beforeEpoch(SupervisedLearning.java:142)

    atorg.neuroph.core.learning.IterativeLearning.doOneLearningIteration(IterativeLearning.java:242)

    atGoodTrainingAI.traintest(GoodTrainingAI.java:49)

    atGoodTrainingAI.main(GoodTrainingAI.java:20)

 

自定义beforeEpoch里面没有调用onstart,导致ErrorFunction没有初始化

也没有setDataSet

 

只能自己继承Backpropagation,在重写BeforeEpoch(){  调用super.onStart(),super.beforeEpoch()}, 

注意在MyLearningRule dp调用之前,需要dp.setDataSet(dataSet);

MyLearningRule.java

public class MyLearningRule extends BackPropagation {

 

 

    protected void beforeEpoch() {

       // TODO Auto-generatedmethod stub

       super.onStart();

       super.beforeEpoch();

    }

 

}

Main.java调用

BackPropagation dp = new BackPropagation();

                  

                   //MyLearningRuledp = new MyLearningRule();

                   dp.setTrainingSet(trainingSet);

                   dp.setLearningRate(0.5);

                   dp.setNeuralNetwork(neuralNetwork);          

                   neuralNetwork.setLearningRule(dp);

                  

                   intepoch = 1 ;

                   doubletotalNetError = 1;

                   do

                   {

                           

                            dp.doOneLearningIteration(trainingSet);

                            totalNetError= dp.getTotalNetworkError() ;

 

BackPropagation dp = new BackPropagation();          

                     dp.setNeuralNetwork(neuralNetwork);              

                     neuralNetwork.setLearningRule(dp);

             dp.doOneLearningIteration(trainingSet);---》内部机制问题

Exception in thread"main" java.lang.NullPointerException

    atorg.neuroph.core.learning.SupervisedLearning.beforeEpoch(SupervisedLearning.java:142)

    atorg.neuroph.core.learning.IterativeLearning.doOneLearningIteration(IterativeLearning.java:242)

    atGoodTrainingAI.traintest(GoodTrainingAI.java:49)

    atGoodTrainingAI.main(GoodTrainingAI.java:20)

 

自定义beforeEpoch里面没有调用onstart,导致ErrorFunction没有初始化

也没有setDataSet

 

只能自己继承Backpropagation,在重写BeforeEpoch(){  调用super.onStart(),super.beforeEpoch()}, 

注意在MyLearningRule dp调用之前,需要dp.setDataSet(dataSet);

MyLearningRule.java

public class MyLearningRule extends BackPropagation {

 

 

    protected void beforeEpoch() {

       // TODO Auto-generatedmethod stub

       super.onStart();

       super.beforeEpoch();

    }

 

}

Main.java调用

BackPropagation dp = new BackPropagation();

                  

                   //MyLearningRuledp = new MyLearningRule();

                   dp.setTrainingSet(trainingSet);

                   dp.setLearningRate(0.5);

                   dp.setNeuralNetwork(neuralNetwork);          

                   neuralNetwork.setLearningRule(dp);

                  

                   intepoch = 1 ;

                   doubletotalNetError = 1;

                   do

                   {

                           

                            dp.doOneLearningIteration(trainingSet);

                            totalNetError= dp.getTotalNetworkError() ;

 

0 0
原创粉丝点击