public override double Train(Data info, float lr, float mom) { IMLDataSet data = new BasicMLDataSet(info.InputData, info.OutputData); //Train network on data set, parameters (Network, dataset, learning rate, momentum). ICalculateScore score = new TrainingSetScore(data); IMLTrain trainAlt = new NeuralSimulatedAnnealing(EncogNetwork, score, 10, 2, 1000); IMLTrain learner; learner = new LevenbergMarquardtTraining(EncogNetwork, data); var stop = new StopTrainingStrategy(); learner.AddStrategy(new Greedy()); learner.AddStrategy(new HybridStrategy(trainAlt)); //Train network on data set. double lastError = double.PositiveInfinity; do { if (learner.Error != 0) { lastError = learner.Error; } learner.Iteration(); } while (lastError - learner.Error > 0.0000001); return(learner.Error); }
public void Train(BasicNetwork network, IMLDataSet training) { IMLTrain trainMain = new LevenbergMarquardtTraining(network, training); // train the neural network var stop = new StopTrainingStrategy(); var score = new TrainingSetScore(trainMain.Training); var trainAlt = new NeuralSimulatedAnnealing(network, score, 10, 2, 100); trainMain.AddStrategy(new HybridStrategy(trainAlt)); trainMain.AddStrategy(stop); var epoch = 0; while (!stop.ShouldStop() && trainMain.IterationNumber < 1500) { trainMain.Iteration(); Console.WriteLine("Training " + ", Epoch #" + epoch + " Error:" + trainMain.Error); epoch++; } }