Exemplo n.º 1
0
        /// <summary>
        /// Called just before a training iteration.
        /// </summary>
        ///
        public virtual void PreIteration()
        {
            if (_train.Error > _acceptableThreshold)
            {
                if (!Double.IsNaN(_lastError))
                {
                    double improve = (_lastError - _train.Error);
                    if (improve < _required)
                    {
                        _badCycleCount++;
                        if (_badCycleCount > _cycles)
                        {
                            EncogLogging.Log(EncogLogging.LevelDebug,
                                             "Failed to improve network, resetting.");
                            _method.Reset();
                            _badCycleCount = 0;
                            _lastError     = Double.NaN;
                        }
                    }
                    else
                    {
                        _badCycleCount = 0;
                    }
                }
                else
                {
                    _lastError = _train.Error;
                }
            }

            _lastError = Math.Min(_train.Error, _lastError);
        }
 /// <summary>
 /// Called just before a training iteration.
 /// </summary>
 ///
 public virtual void PreIteration()
 {
     if (_train.Error > _required)
     {
         _badCycleCount++;
         if (_badCycleCount > _cycles)
         {
             EncogLogging.Log(EncogLogging.LevelDebug,
                              "Failed to imrove network, resetting.");
             _method.Reset();
             _badCycleCount = 0;
         }
     }
     else
     {
         _badCycleCount = 0;
     }
 }