public static void MyTrainConsole(IMLTrain train, BasicNetwork network, IMLDataSet trainingSet, int minutes, FileInfo networkFile, FileInfo trainFile) { int epoch = 1; long remaining; Console.WriteLine(@"Beginning training..."); long start = Environment.TickCount; do { train.Iteration(); long current = Environment.TickCount; long elapsed = (current - start) / 1000; remaining = minutes - elapsed / 60; Console.WriteLine($@"Iteration #{Format.FormatInteger(epoch)} Error:{Format.FormatPercent(train.Error)} elapsed time = {Format.FormatTimeSpan((int)elapsed)} time left = {Format.FormatTimeSpan((int)remaining * 60)}"); epoch++; EncogDirectoryPersistence.SaveObject(networkFile, network); TrainingContinuation cont = train.Pause(); EncogDirectoryPersistence.SaveObject(trainFile, cont); train.Resume(cont); foreach (var x in cont.Contents) { Console.WriteLine($"{x.Key}: {((double[])x.Value).Average()}"); } }while (remaining > 0 && !train.TrainingDone && !Console.KeyAvailable); Console.WriteLine("Finishing."); train.FinishTraining(); }