public static void main(String[] args) { Logging.stopConsoleLogging(); NeuralDataSet trainingSet = new BasicNeuralDataSet(XOR_INPUT, XOR_IDEAL); BasicNetwork network = EncogUtility.simpleFeedForward(2, 4, 0, 1, false); ResilientPropagation train = new ResilientPropagation(network, trainingSet); train.addStrategy(new RequiredImprovementStrategy(5)); System.out.println("Perform initial train."); EncogUtility.trainToError(train, network, trainingSet, 0.01); TrainingContinuation cont = train.pause(); System.out.println( Arrays.toString((double[]) cont.getContents().get(ResilientPropagation.LAST_GRADIENTS))); System.out.println( Arrays.toString((double[]) cont.getContents().get(ResilientPropagation.UPDATE_VALUES))); try { SerializeObject.save("resume.ser", cont); cont = (TrainingContinuation) SerializeObject.load("resume.ser"); } catch (Exception ex) { ex.printStackTrace(); } System.out.println( "Now trying a second train, with continue from the first. Should stop after one iteration"); ResilientPropagation train2 = new ResilientPropagation(network, trainingSet); train2.resume(cont); EncogUtility.trainToError(train2, network, trainingSet, 0.01); }
private void processTrain() throws IOException { final String strMode = getArg("mode"); final String strMinutes = getArg("minutes"); final String strStrategyError = getArg("strategyerror"); final String strStrategyCycles = getArg("strategycycles"); System.out.println("Training Beginning... Output patterns=" + this.outputCount); final double strategyError = Double.parseDouble(strStrategyError); final int strategyCycles = Integer.parseInt(strStrategyCycles); final ResilientPropagation train = new ResilientPropagation(this.network, this.training); train.addStrategy(new ResetStrategy(strategyError, strategyCycles)); if (strMode.equalsIgnoreCase("gui")) { EncogUtility.trainDialog(train, this.network, this.training); } else { final int minutes = Integer.parseInt(strMinutes); EncogUtility.trainConsole(train, this.network, this.training, minutes); } System.out.println("Training Stopped..."); }