Beispiel #1
0
        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.");
                }
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
 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;
     });
 }
Beispiel #4
0
        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");
            });
        }