示例#1
0
        public void TrainPrediction(double[] train_set, double lambda = 0, double alpha = 1)
        {
            cost_acc        = 0;
            iteration_count = 0;
            int input_count  = network.Neurons[0].Length - 1;                          //without bias
            int output_count = network.Neurons[network.Neurons.Length - 1].Length - 1; //without bias

            for (int i = 0; i < train_set.Length - input_count - output_count; i++)
            {
                network.SetInput(GetArrayRange(train_set, i, i + input_count));
                network.SetAnswers(GetArrayRange(train_set, i + input_count, i + input_count + output_count));
                CalculateError();
                network.BackPropagate();
            }
            if (_isLearning)
            {
                network.ApplyTraining(lambda, alpha);
            }
            else
            {
                network.ResetTraining();
            }
        }