我对 XOR 算子的 Elman 网络训练并没有停止,它运行了数百万次迭代。任何帮助将非常感激!
包 org.encog.example; 导入 org.encog.Encog; 导入 org.encog.engine.network.activation.ActivationSigmoid; 导入 org.encog.ml.train.MLTrain; 导入 org.encog.neural.data.NeuralDataSet; 导入 org.encog.neural.data.basic.BasicNeuralDataSet; 导入 org.encog.neural.networks.BasicNetwork; 导入 org.encog.neural.networks.training.propagation.back.Backpropagation; 导入 org.encog.neural.pattern.ElmanPattern; 公共类 XORRNN { // 4行2列 公共静态双 XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 }, { 0.0, 1.0 }, { 1.0, 1.0 } }; // 4行1列 公共静态双 XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } }; 公共静态无效主要(字符串[]参数){ //创建Elman RNN ElmanPattern elmanPattern = new ElmanPattern(); elmanPattern.setInputNeurons(2); elmanPattern.addHiddenLayer(4); elmanPattern.setOutputNeurons(1); elmanPattern.setActivationFunction(new ActivationSigmoid()); BasicNetwork 网络 = (BasicNetwork) elmanPattern.generate(); //读取训练数据 NeuralDataSet trainingSet = new BasicNeuralDataSet(XOR_INPUT, XOR_IDEAL); //设置训练方法 MLTrain train = new Backpropagation(network, trainingSet, 0.000001, 0.0); //训练 整数时代 = 1; 做{ 训练.迭代(); System.out.println("迭代:" + epoch + ",错误:" + train.getError()); 纪元++; }while(train.getError() > 0.01); //关闭 Encog.getInstance().shutdown(); } }