internal void AddTestError(TrainingSessionBase session, double error) { int iters = session.Epoch * session.IterationsPerEpoch; if (_testDecimator == 0 || _testIdx >= _testDecimator) { _testIdx = 0; _testErrorSeries.AddPoint(new DataPoint(iters + session.Iteration, error)); } else { _testIdx++; } if (_testErrorSeries.SeriesPoints.Count >= PlotResolution) { _testErrorSeries.DecimatePoints(2); _testDecCnt++; _testDecimator = _testDecCnt * 2; _testIdx = 0; } PlotModel.InvalidatePlot(true); }
private void TrainerEventsOnEpochReached(TrainingSessionBase session) { if (Schedule.ShouldDoOnEpoch(session.Epoch)) { DoAction(session); } }
private void TrainerEventsOnSequenceTrained(TrainingSessionBase session) { if (Schedule.ShouldDoOnIteration(session.Iteration)) { DoAction(session); } }
protected override void DoAction(TrainingSessionBase session) { _action(); }
protected override void DoAction(TrainingSessionBase session) { DoAction((T)session); }
protected abstract void DoAction(TrainingSessionBase session);