Example #1
0
        internal void UpdateReport(OptimizationReportEventArgs report)
        {
            Report = report;
            int iters = report.Session.Epoch * report.Session.IterationsPerEpoch;

            for (int i = 0; i < report.Errors.Count; i++, _errIdx++)
            {
                if (_errDecimator == 0 || _errIdx >= _errDecimator)
                {
                    _errIdx = 0;
                    _errorSeries.AddPoint(new DataPoint(iters + report.Session.Iteration - report.Errors.Count + i, report.Errors[i].FilteredError));
                }
            }

            if (_errorSeries.SeriesPoints.Count >= PlotResolution)
            {
                _errorSeries.DecimatePoints(2);
                _errDecCnt++;
                _errDecimator = _errDecCnt * 2;
                _errIdx       = 0;
            }

            PlotModel.ZoomX();
            PlotModel.ZoomY();

            PlotModel.InvalidatePlot(true);
        }
Example #2
0
 private void TrainerOnTrainReport(object sender, OptimizationReportEventArgs e)
 {
     Dispatch(() =>
     {
         ReportModel.UpdateReport(e);
         OptionsModel.LearningRate = e.LearningRate;
     });
 }