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) + ""); }
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); }
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); }