您的位置:首页 > 编程语言

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

2014-07-31 21:07 309 查看
经过调试发现Neuroph 有问题,有问题,自己用代码训练NullPointerException,beforeEpoch

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

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() ;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: