【问题标题】:encog RBF trainingencog RBF 训练
【发布时间】:2016-10-10 17:45:05
【问题描述】:

我正在学习如何使用 Java 的 encog 库。我正在尝试为近似函数创建 RBF 网络。我正在使用 SVDTraining 方法,但网络错误并没有减少。它保持在与训练开始时相同的水平。我不知道为什么。

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

这是我的代码的 sn-p(创建和培训部分) 非常感谢您的每一个回答。

【问题讨论】:

    标签: java neural-network encog


    【解决方案1】:

    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 次。

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2015-07-04
      • 2013-05-14
      • 1970-01-01
      • 2023-03-21
      • 2013-08-11
      • 2023-03-24
      • 2014-11-27
      • 1970-01-01
      相关资源
      最近更新 更多