我使用 encog 库实现了一个神经网络,如下所示,
MLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL); final Propagation train = new Backpropagation(network, trainingSet); int epoch = 1; do { train.iteration(); System.out.println("Epoch #" + epoch + " Error:" + train.getError()); epoch++; } while (train.getError() < 0.009); double e = network.calculateError(trainingSet); System.out.println("Network trained to error :" + e); System.out.println("Saving Network"); EncogDirectoryPersistence.saveObject(new File(FILENAME), network);}public void loadAndEvaluate(){ System.out.println("Loading Network"); BasicNetwork network = (BasicNetwork) EncogDirectoryPersistence.loadObject(new File(FILENAME)); BasicMLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT,XOR_IDEAL); double e = network.calculateError(trainingSet); System.out.println("Loaded network's error is (should be the same as above ):" + e);}
这会输出错误信息。但我想用自定义数据进行测试,并检查一组数据的输出是否正确
回答:
我看到你正在参考一个持久化示例。要获取某些输入的输出,请使用“compute”函数。例如:
double[] output = new double[1]; network.compute(new double[]{1.0, 1.0}, output); System.out.println("Network output: " + output[0] + " (should be close to 0.0)");
这里是 Java 用户指南。非常有帮助。