Esempio n. 1
0
        private void button_test_Click(object sender, EventArgs e)
        {
            chart_test_total.Series[0].Points.Clear();
            listview_test.Items.Clear();

            int total = int.Parse(textbox_testcount.Text), correct = 0;

            AIWrapper wrapper = new AIWrapper(textbox_exepath.Text);

            wrapper.SetNetwork(textbox_networkpath.Text);
            wrapper.SetWeight(textbox_biasweightpath.Text);
            test_res = wrapper.Predict(dataPath,
                                       int.Parse(textbox_dataoffset.Text), dataWidth * dataWidth, total);

            int i, j = 0, result, answer;

            foreach (List <float> lf in test_res)
            {
                result = GetMaxIdx(lf);
                answer = -1;
                for (i = 0; i < answerSplit[j].Length; i++)
                {
                    if (answerSplit[j][i].CompareTo(1) == 0)
                    {
                        answer = i;
                        break;
                    }
                }
                if (result == answer)
                {
                    correct++;
                }
                //draw(panel_data_graph_2, j);
                Console.WriteLine("ans : " + answer + ", res : " + result
                                  + "(" + (result == answer ? "O" : "X") + ")");
                ListViewItem item = new ListViewItem(j++ + "");
                item.SubItems.Add(answer + "");
                item.SubItems.Add(result + "");
                item.SubItems.Add((answer == result) ? "O" : "X");
                listview_test.Items.Add(item);
                //Thread.Sleep(1000);
            }

            chart_test_total.Series[0].Points.AddXY("Correct", correct + "");
            chart_test_total.Series[0].Points.AddXY("Wrong", (total - correct) + "");
        }
Esempio n. 2
0
        private void button_train_Click(object sender, EventArgs e)
        {
            int    trainCount = int.Parse(textbox_traincount.Text);
            string path       = textbox_exportpath.Text;

            AIWrapper wrapper = new AIWrapper(textbox_exepath.Text);

            wrapper.SetNetwork(textbox_networkpath.Text);

            wrapper.SetInput(textbox_datapath.Text
                             , int.Parse(textbox_dataoffset.Text)
                             , int.Parse(textbox_datalength.Text)
                             , dataCount);

            wrapper.SetAnswer(textbox_answerpath.Text
                              , int.Parse(textbox_answeroffset.Text)
                              , int.Parse(textbox_answerlength.Text)
                              , answerCount);

            wrapper.Train(textbox_exportpath.Text, trainCount);
        }
Esempio n. 3
0
        private void button_predict_Click(object sender, EventArgs e)
        {
            int paint_size = panel_paint.Width;
            int i, j, x, y;

            //for(i = 0;i < paint_size; i++)
            //{
            //    for(j = 0;j < paint_size; j++)
            //    {
            //        Console.Write(pixels[i][j] == 1 ? "X" : " ");
            //    }
            //    Console.WriteLine();
            //}

            int paintWidth = panel_paint.Width;
            int scaleSize  = paintWidth / dataWidth + 1;

            byte[][] arr  = new byte[dataWidth][];
            byte[]   arr2 = new byte[dataWidth * dataWidth];

            for (i = 0; i < dataWidth; i++)
            {
                arr[i] = new byte[dataWidth];
            }
            for (i = 0; i < paintWidth; i++)
            {
                for (j = 0; j < paintWidth; j++)
                {
                    if (pixels[i][j] == 1)
                    {
                        x = i / scaleSize;
                        y = j / scaleSize;
                        arr[i / scaleSize][j / scaleSize] = 255;
                        arr2[x * dataWidth + y]           = 255;
                    }
                }
            }

            //for(i = 0;i < arr.Length; i++)
            //{
            //    for(j = 0;j < arr.Length; j++)
            //    {
            //        Console.Write(arr[i][j] == 255 ? "X" : "0");
            //    }
            //    Console.WriteLine();
            //}

            string path = Directory.GetCurrentDirectory() + @"\temp\predict.txt";

            File.WriteAllBytes(path, arr2);

            AIWrapper wrapper = new AIWrapper(textbox_exepath.Text);

            wrapper.SetNetwork(textbox_networkpath.Text);
            wrapper.SetWeight(textbox_biasweightpath.Text);
            List <List <float> > res = wrapper.Predict(path, 0, dataWidth * dataWidth, 1);
            int tag = 0;

            foreach (List <float> lf in res)
            {
                foreach (float f in lf)
                {
                    Console.WriteLine(f);
                    chart_predict.Series[0].Points.AddXY(tag++ + "", (f * 100) + "");
                }
            }

            File.Delete(path);
        }