示例#1
0
        /// <summary>
        ///   Runs one iteration of the learning algorithm with the
        ///   specified input training observation and corresponding
        ///   output label.
        /// </summary>
        /// 
        /// <param name="observations">The training observations.</param>
        /// <param name="outputs">The observation's labels.</param>
        /// 
        /// <returns>The error in the last iteration.</returns>
        /// 
        public double Run(T[][] observations, int[] outputs)
        {
            convergence.Clear();

            do
            {
                RunEpoch(observations, outputs);
            }
            while (!convergence.HasConverged);

            return convergence.NewValue;
        }
        private double run(T[][] observations, int[] outputs)
        {
            convergence.Clear();

            do
            {
                RunEpoch(observations, outputs);
                if (Token.IsCancellationRequested)
                    break;
            }
            while (!convergence.HasConverged);

            return convergence.NewValue;
        }
        /// <summary>
        ///   Runs the learning algorithm.
        /// </summary>
        /// 
        protected override double InnerRun(T[][] observations, int[] outputs)
        {
            init();
            convergence.Clear();

            do
            {
                RunEpoch(observations, outputs);
                if (Token.IsCancellationRequested)
                    break;
            }
            while (!convergence.HasConverged);

            return convergence.NewValue;
        }
 /// <summary>
 ///   Resets the step size.
 /// </summary>
 /// 
 public void Reset()
 {
     convergence.Clear();
     stepSize = 0;
 }