예제 #1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            enabled = false;
            int iter;

            if (!int.TryParse(iter_input.Text, out iter))
            {
                iter = 50000;
            }

            for (int i = 0; i < iter; i++)
            {
                choice = rnd.Next(3);
                if (i % 50000 == 0)
                {
                    CheckForErrors();
                }

                switch (choice)
                {
                case 0:
                {
                    elem = rnd.Next(red_set_top.Length);
                    p.Backpropagation(ref red_set_top[elem], ref ideal_red_top);
                    break;
                }

                case 1:
                {
                    elem = rnd.Next(blue_set.Length);
                    p.Backpropagation(ref blue_set[elem], ref ideal_blue);
                    break;
                }

                case 2:
                {
                    elem = rnd.Next(red_set_bot.Length);
                    p.Backpropagation(ref red_set_bot[elem], ref ideal_red_bot);
                    break;
                }
                }
            }
            enabled = true;
            surface.InvalidateVisual();
            p.PrintWeights(true);

            StreamWriter wr = new StreamWriter(@"./ErrorStatistics.txt", false);

            foreach (KeyValuePair <int, double> er in ErrorStatistics)
            {
                wr.WriteLine((1 + er.Key) * 50000 + " - " + er.Value);
            }
            wr.Close();
        }