Example #1
0
        private void _maze_TrainingEpisodeCompleted(object sender, QLearning.Core.TrainingEpisodeCompletedEventArgs e)
        {
            if (e.Success)
            {
                _successfulRuns++;

                _totalMoves += e.TotalMoves;
                _totalScore += e.TotalScore;

                _averageMoves = _totalMoves / _successfulRuns;
                _averageScore = _totalScore / _successfulRuns;
            }

            _runEpochs++;
            _percentComplete = (double)e.CurrentEpisode / (double)e.TotalEpisodes;

            if (e.CurrentEpisode % trainingProgressBar.Step == 0)
            {
                string message = $"Episode: {e.CurrentEpisode.ToString("#,##0")} | " +
                                 $"{_percentComplete.ToString("0%")} Complete";

                UpdateLabel(message);
                UpdateProgressBar();
            }

            if ((e.CurrentEpisode + 1) % _showEvery == 0 &&
                e.CurrentEpisode > 1)
            {
                _episodeStartSpace = e.StartPoint;
                RenderTraining();
            }
        }
Example #2
0
 private void AgentTrainingEpisodeCompleted(object sender, QLearning.Core.TrainingEpisodeCompletedEventArgs e)
 {
     TrainingEpisodesCompleted++;
 }