2016-10-10 16 views
0

私はencogのJava用ライブラリの使い方を学んでいます。私はaproximating機能のRBFネットワークを作成しようとしています。私はSVDTrainingメソッドを使用していますが、ネットワークエラーは減少していません。それは訓練の初めと同じレベルにとどまっています。そして私は理由を知らない。ここでencog RBFトレーニング

  MLDataSet trainingSet = new BasicMLDataSet(trainData); 
      MLDataSet testingSet = new BasicMLDataSet(testData); 

      RadialBasisFunction fnc[] = {new GaussianFunction(1)}; 
      RBFNetwork rbf= new RBFNetwork(1,1,fnc); 

      //Create the training set and train. 
      MLTrain train = new SVDTraining(rbf, trainingSet); 


      int epoch = 1; 

      File f = new File("Error.csv"); 
      PrintWriter pw = new PrintWriter(f); 
      StringBuilder sb = new StringBuilder(); 

      do { 
       train.iteration(); 

       System.out.println(rbf.getRBF().length+";"+rbf.getInputCount()+";"+rbf.getOutputCount()); 
       System.out.println("Epoch #" + epoch + " Error:" + train.getError()); 
       epoch++; 

       String x = String.valueOf(epoch).replace(".", ","); 
       String y = String.valueOf(train.getError()).replace(".", ","); 
       sb.append(x); 
       sb.append(';'); 
       sb.append(y); 
       sb.append('\n'); 
      } while((train.getError() > MAX_ERROR)&&(epoch < ITERATIONS)); 

は私のコード(作成と研修部)の抜粋です すべての答えをありがとうございました。

答えて

0

SVDは単一ステップで解決されます。

//SVD is a single step solve 
int epoch = 1; 
do 
{ 
    train.iteration(); 
    System.out.println("Epoch #" + epoch + " Error:" + train.getError()); 
    epoch++; 
} while ((epoch < 1) && (train.getError() > 0.001)); 

1回だけ反復されます。

関連する問題