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(); } }