首页
学习
活动
专区
圈层
工具
发布

encog训练
EN

Stack Overflow用户
提问于 2016-10-10 17:45:05
回答 1查看 240关注 0票数 0

我正在学习如何使用用于java的encog库。我正在尝试创建RBF网络作为近似函数。我使用的是SVDTraining方法,但是网络错误并没有减少。它与刚开始训练时的水平是一样的。我也不知道为什么。

代码语言:javascript
复制
            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));

下面是我的代码片段(创建和培训部分),非常感谢您的每一个回答。

EN

回答 1

Stack Overflow用户

发布于 2016-11-30 16:02:06

SVD是一个单步解决方案。

代码语言:javascript
复制
//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次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39963897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档