public static void LanderTrain() { const int MOMENTUM_ADJUSTMENT = 21; const int CACHE_MARGIN = 0; const bool USE_MOM_AVG = false; // setting Console.WriteLine("\n\nRLM network settings:"); int sessions = Util.GetInput("Enter Number of Sessions [default 100]: ", 100); int startRand = Util.GetInput("Enter start randomness [default 30]: ", 30); int endRand = Util.GetInput("Enter end randomness [default 0]: ", 0); int maxLinearBracket = Util.GetInput("Max linear bracket value [default 15]: ", 15); int minLinearBracket = Util.GetInput("Min linear bracket value [default 3]: ", 3); Console.WriteLine(); try { var pilot = new RLMPilot(true, sessions, startRand, endRand, maxLinearBracket, minLinearBracket); Stopwatch watch = new Stopwatch(); watch.Start(); Console.WriteLine(); for (int i = 0; i < sessions; i++) { pilot.StartSimulation(i, true); } watch.Stop(); Console.WriteLine($"\nElapsed: {watch.Elapsed}\n"); int showPredictedOutput = Util.GetInput("Show landing simulation for AI prediction? [No - 0, Yes - 1 default]: ", 1); if (showPredictedOutput == 1) { pilot.Learn = false; pilot.StartSimulation(sessions, true); } Console.WriteLine("hit enter to continue..."); pilot.TrainingDone(); Console.ReadLine(); } catch (Exception e) { if (e.InnerException != null && e.InnerException is RlmDefaultConnectionStringException) { Console.WriteLine($"Error: {e.InnerException.Message}"); } else { Console.WriteLine($"ERROR: {e.Message}"); } } }
public void LanderTrain() { const int MOMENTUM_ADJUSTMENT = 21; const int CACHE_MARGIN = 0; const bool USE_MOM_AVG = false; // settings Console.WriteLine("\nRLM network settings:"); if (!inputsHasValue) { sessions = Util.GetInput("Enter Number of Sessions [default 100]: ", 100); startRand = Util.GetInput("Enter start randomness [default 30]: ", 30); endRand = Util.GetInput("Enter end randomness [default 0]: ", 0); maxLinearBracket = Util.GetInput("Max linear bracket value [default 15]: ", 15); minLinearBracket = Util.GetInput("Min linear bracket value [default 3]: ", 3); } Console.WriteLine(); try { pilot = new RLMPilot(true, sessions, startRand, endRand, maxLinearBracket, minLinearBracket); // execute it on another thread as not to block the RLM training Console.WriteLine("\nPress 'd' to show Data persistence progress\n"); Task.Run(() => { while (!Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.D) { pilot.ShowDataPersistenceProgress = true; } }); Stopwatch watch = new Stopwatch(); watch.Start(); Console.WriteLine(); pilot.ResetRLMRandomization(); for (int i = 0; i < sessions; i++) { pilot.StartSimulation(i, true); } watch.Stop(); Console.WriteLine($"\nTotal Elapsed Time: {watch.ElapsedMilliseconds}\n"); int showPredictedOutput = 0;//Util.GetInput("Show landing simulation for AI prediction? [No - 0, Yes - 1 default]: ", 1); if (showPredictedOutput == 1) { pilot.Learn = false; pilot.StartSimulation(sessions, true); } pilot.TrainingDone(watch.Elapsed, sessions); } catch (Exception e) { if (e.InnerException != null && e.InnerException is RlmDefaultConnectionStringException) { Console.WriteLine($"Error: {e.InnerException.Message}"); } else { Console.WriteLine($"ERROR: {e.Message}"); } } }