private async void Button3_Click(object sender, RoutedEventArgs e) { if (unknownSet.Count > 0 && learningSet.Count > 0 && testDir.Length > 3) { try { string networkTestAddres = testDir + "\\Networks"; List <string> networksPaths = Directory.GetFiles(networkTestAddres).ToList(); for (int i = 0; i < networksPaths.Count; i++) { string answersTestAddres = testDir + "\\Answers"; string newPath = System.IO.Path.Combine(answersTestAddres, i.ToString()); System.IO.Directory.CreateDirectory(newPath); Network temporaryNetwork = IOTxtFile.LoadNetworkConfiguration(networksPaths[i]); if (unknownSet.Count > 0 && learningSet.Count > 0 && temporaryNetwork.CompleteData == true) { BlakWait.Visibility = Visibility.Visible; DataSet data = new DataSet(learningSet, temporaryNetwork.Classes); await PerformLearning(data, temporaryNetwork, newPath, i); //zapisac siec + wynik IOBinFile.SaveBinary(temporaryNetwork, newPath + "\\learnedNetwork"); LearningHelper.CreateErrorFile(errorsHistory, newPath); BlakWait.Visibility = Visibility.Collapsed; } } } catch (Exception Ex) { MessageBox.Show("Error ! Nie można przeprowadzić testów."); } } }
private async void Button2_Click(object sender, RoutedEventArgs e) { if (learningSet.Count > 0 && globalNetwork.CompleteData == true) { BlakWait.Visibility = Visibility.Visible; DataSet data = new DataSet(learningSet, globalNetwork.Classes); await PerformLearning(data, globalNetwork); LearningHelper.CreateErrorFile(errorsHistory); BlakWait.Visibility = Visibility.Collapsed; } }
private async Task PerformLearning(DataSet data, Network network) { await Task.Run(() => { List <float> errorHistory = new List <float>(); Random rand = new Random(network.Seed); for (int i = 0; i < network.Iterations; i++) { float error = 0.0f; error = LearningHelper.Learn(network, data); LearningHelper.RandomizeSet(rand, data); Console.WriteLine("-----------------------------------------"); Console.WriteLine("Epoka " + i + " / " + network.Iterations); Console.WriteLine("Error " + error + " %"); errorHistory.Add(error); } errorsHistory = errorHistory; }); }
private async Task PerformLearning(DataSet data, Network network, string dir, int index) { await Task.Run(() => { List <float> errorHistory = new List <float>(); Random rand = new Random(network.Seed); Logger(network.ToString(), dir); for (int i = 0; i < network.Iterations; i++) { float error = 0.0f; error = LearningHelper.Learn(network, data); LearningHelper.RandomizeSet(rand, data); string txt = ""; txt += "-----------------------------------------" + Environment.NewLine; string timer = string.Format("{0:dd.MM.yyyy_hh:mm:ss}", DateTime.Now); txt += timer + Environment.NewLine; txt += "Epoka " + i + " / " + network.Iterations + Environment.NewLine; txt += "Mean Squared Error " + error + " %" + Environment.NewLine; Logger(txt, dir); errorHistory.Add(error); } errorsHistory = errorHistory; float testingError = TestingHelper.GetTestingSetError(network, new DataSet(unknownSet, network.Classes)); string txt2 = ""; txt2 += "-----------------------------------------" + Environment.NewLine; txt2 += "------------FINAL TESTING ERROR----------" + Environment.NewLine; txt2 += "-----------------------------------------" + Environment.NewLine; string timer2 = string.Format("{0:dd.MM.yyyy_hh:mm:ss}", DateTime.Now); txt2 += timer2 + Environment.NewLine; txt2 += "Testing Error " + testingError + "%" + Environment.NewLine; Logger(txt2, dir); Console.WriteLine("-----------------------------------------------------"); Console.WriteLine(timer2 + ": test " + index + " przeprowadzono"); }); }