Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.48 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Diagnostics.Eventing.Reader;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using System.Windows.Forms.DataVisualization.Charting;
  13. using rtChart;
  14.  
  15. namespace IADZAD1WARIANTNA3
  16. {
  17. public partial class Form1 : Form
  18. {
  19. private double eta;
  20. private double momentum;
  21. private int iterations;
  22. private bool biasUsed;
  23. private int numOfHiddenNeurons;
  24. private List<double[]> wyniki;
  25. private double[] punktyBlad;
  26. private string biasString;
  27. private Dictionary<int, double> dane = new Dictionary<int, double>();
  28. public Form1()
  29. {
  30. InitializeComponent();
  31. }
  32.  
  33. private Thread GraphThread;
  34.  
  35. public void ReadFromGui()
  36. {
  37. eta = double.Parse(EtaBox.Text);
  38. momentum = double.Parse(MomentBox.Text);
  39. iterations = Int32.Parse(IterBox.Text);
  40. biasUsed = useBias.Checked;
  41. numOfHiddenNeurons = Int32.Parse(neuronBox.Text);
  42. if (biasUsed) biasString = ", bias";
  43. else biasString = ", bez biasu";
  44. }
  45.  
  46. private void Calculate()
  47. {
  48. List<double[]> userInput = new List<double[]>();
  49. List<double[]> userOutput = new List<double[]>();
  50. NeuronNetwork net = new NeuronNetwork(4, numOfHiddenNeurons, 4);
  51. wyniki = net.Training(userInput, userOutput, eta, momentum, biasUsed, iterations, net.ReadFile(userInput, userOutput));
  52. punktyBlad = net.MeanSqErr();
  53. for (int i = 0; i < punktyBlad.Count(); i++)
  54. {
  55. dane[i] = punktyBlad[i];
  56. }
  57. }
  58. private delegate void PlotDelegate();
  59. private void Plot()
  60. {
  61. if (this.InvokeRequired)
  62. {
  63. PlotDelegate plot_delegate = Plot;
  64. this.Invoke(plot_delegate);
  65. return;
  66. }
  67. WykresBledu.Update();
  68. WykresBledu.Titles.Clear();
  69. Title title = WykresBledu.Titles.Add(iterations + " epok, " + "momentum " + momentum + ", eta, " + eta + " " + numOfHiddenNeurons + " neurony warstwy ukrytej " + biasString);
  70. WykresBledu.DataSource = dane;
  71. WykresBledu.Series["Series1"].Points.DataBindXY(dane.Keys, dane.Values);
  72. WykresBledu.Series["Series1"].BorderWidth = 2;
  73. WykresBledu.ChartAreas[0].AxisX.Interval = 500;
  74. WykresBledu.ChartAreas[0].AxisX.Minimum = 0;
  75. WykresBledu.ChartAreas[0].AxisX.Maximum = iterations;
  76. WykresBledu.ChartAreas[0].AxisY.Interval = 0.2;
  77. WykresBledu.Series["Series1"].Palette = ChartColorPalette.Fire;
  78. Wagi.Clear();
  79. for (int i = 0; i < 4; i++)
  80. {
  81. Wagi.Text += "Numer Wyjscia: " + (i + 1);
  82. for (int j = 0; j < 4; j++)
  83. {
  84. Wagi.Text += "\t" + wyniki[i][j].ToString("0." + "################") + "\t";
  85. }
  86. Wagi.Text += "\n";
  87. }
  88. }
  89. public void DrawAGraphAndScores()
  90. {
  91. try
  92. {
  93. Calculate();
  94. Plot();
  95. }
  96. catch (Exception ex)
  97. {
  98. AddStatus("[Thread]" + ex.Message);
  99. }
  100. }
  101. private delegate void AddStatusDelegate(string text);
  102. private void AddStatus(string text)
  103. {
  104. if (this.InvokeRequired)
  105. {
  106. object[] args = new object[] { text };
  107. AddStatusDelegate add_status_delegate = AddStatus;
  108. this.Invoke(add_status_delegate, args);
  109. Console.WriteLine(text);
  110. return;
  111. }
  112. }
  113. private void przycisk_Click(object sender, EventArgs e)
  114. {
  115. ReadFromGui();
  116. if (GraphThread == null)
  117. {
  118. AddStatus("Starting thread");
  119. GraphThread = new Thread(DrawAGraphAndScores)
  120. {
  121. IsBackground = true
  122. };
  123. GraphThread.Start();
  124. przycisk.Text = "Stop";
  125. AddStatus("Thread Started");
  126. }
  127. else
  128. {
  129. AddStatus("Stopping thread");
  130. GraphThread.Abort();
  131. GraphThread = null;
  132. AddStatus("Thread stopped");
  133. przycisk.Text = "Start";
  134. }
  135.  
  136. }
  137.  
  138. private void label1_Click(object sender, EventArgs e)
  139. {
  140.  
  141. }
  142.  
  143. private void IterBox_TextChanged(object sender, EventArgs e)
  144. {
  145.  
  146. }
  147.  
  148. private void EtaBox_TextChanged(object sender, EventArgs e)
  149. {
  150.  
  151. }
  152.  
  153. private void LRBox_TextChanged(object sender, EventArgs e)
  154. {
  155.  
  156. }
  157.  
  158. private void neuronBox_TextChanged(object sender, EventArgs e)
  159. {
  160.  
  161. }
  162.  
  163. private void useBias_CheckedChanged(object sender, EventArgs e)
  164. {
  165.  
  166. }
  167. private void Form1_Load(object sender, EventArgs e)
  168. {
  169.  
  170. }
  171.  
  172. private void WykresBledu_Click(object sender, EventArgs e)
  173. {
  174.  
  175. }
  176. }
  177.  
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement