public void WriteData(double[] input, BayesianLearning teacher) { double[] writeOutput = teacher.network.Compute(input); using (StreamWriter writetext = new StreamWriter("log.txt", append: true)) { for (int i = 0; i < writeOutput.Length; i++) { writetext.WriteLine(input[i] + " " + writeOutput[i]); } } }
private void Learn() { int samples = data.GetLength(0); double[][] input = new double[samples][]; double[][] output = new double[samples][]; for (int i = 0; i < samples; i++) { input[i] = new double[1]; output[i] = new double[1]; input[i][0] = (data[i, 0]); output[i][0] = (data[i, 1]); } ActivationNetwork network = new ActivationNetwork( new BipolarSigmoidFunction(sigmoidAlphaValue), 1, neuronsInFirstLayer, 1); BayesianLearning teacher = new BayesianLearning(network); teacher.LearningRate = learningRate; int iteration = 1; while (!needToStop) { double error = teacher.RunEpoch(input, output) / samples; Console.WriteLine("The avg error is: " + error); iteration++; //Mikor álljunk meg? Ha az iterációk száma eléri a megadottat, vagy a hiba kisebb mint valami if ((iterations != 0) && (iteration > iterations) || error < 1) { for (int i = 0, n = input.Length; i < n; i++) { WriteData(input[i], teacher); } break; } } LoadTestData(); for (int i = 0; i < 30; i++) { double[] test = teacher.network.Compute(testingData[i]); } }