Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics.Eventing.Reader;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Windows.Forms.DataVisualization.Charting;
- using rtChart;
- namespace IADZAD1WARIANTNA3
- {
- public partial class Form1 : Form
- {
- private double eta;
- private double momentum;
- private int iterations;
- private bool biasUsed;
- private int numOfHiddenNeurons;
- private List<double[]> wyniki;
- private double[] punktyBlad;
- private string biasString;
- private Dictionary<int, double> dane = new Dictionary<int, double>();
- public Form1()
- {
- InitializeComponent();
- }
- private Thread GraphThread;
- public void ReadFromGui()
- {
- eta = double.Parse(EtaBox.Text);
- momentum = double.Parse(MomentBox.Text);
- iterations = Int32.Parse(IterBox.Text);
- biasUsed = useBias.Checked;
- numOfHiddenNeurons = Int32.Parse(neuronBox.Text);
- if (biasUsed) biasString = ", bias";
- else biasString = ", bez biasu";
- }
- private void Calculate()
- {
- List<double[]> userInput = new List<double[]>();
- List<double[]> userOutput = new List<double[]>();
- NeuronNetwork net = new NeuronNetwork(4, numOfHiddenNeurons, 4);
- wyniki = net.Training(userInput, userOutput, eta, momentum, biasUsed, iterations, net.ReadFile(userInput, userOutput));
- punktyBlad = net.MeanSqErr();
- for (int i = 0; i < punktyBlad.Count(); i++)
- {
- dane[i] = punktyBlad[i];
- }
- }
- private delegate void PlotDelegate();
- private void Plot()
- {
- if (this.InvokeRequired)
- {
- PlotDelegate plot_delegate = Plot;
- this.Invoke(plot_delegate);
- return;
- }
- WykresBledu.Update();
- WykresBledu.Titles.Clear();
- Title title = WykresBledu.Titles.Add(iterations + " epok, " + "momentum " + momentum + ", eta, " + eta + " " + numOfHiddenNeurons + " neurony warstwy ukrytej " + biasString);
- WykresBledu.DataSource = dane;
- WykresBledu.Series["Series1"].Points.DataBindXY(dane.Keys, dane.Values);
- WykresBledu.Series["Series1"].BorderWidth = 2;
- WykresBledu.ChartAreas[0].AxisX.Interval = 500;
- WykresBledu.ChartAreas[0].AxisX.Minimum = 0;
- WykresBledu.ChartAreas[0].AxisX.Maximum = iterations;
- WykresBledu.ChartAreas[0].AxisY.Interval = 0.2;
- WykresBledu.Series["Series1"].Palette = ChartColorPalette.Fire;
- Wagi.Clear();
- for (int i = 0; i < 4; i++)
- {
- Wagi.Text += "Numer Wyjscia: " + (i + 1);
- for (int j = 0; j < 4; j++)
- {
- Wagi.Text += "\t" + wyniki[i][j].ToString("0." + "################") + "\t";
- }
- Wagi.Text += "\n";
- }
- }
- public void DrawAGraphAndScores()
- {
- try
- {
- Calculate();
- Plot();
- }
- catch (Exception ex)
- {
- AddStatus("[Thread]" + ex.Message);
- }
- }
- private delegate void AddStatusDelegate(string text);
- private void AddStatus(string text)
- {
- if (this.InvokeRequired)
- {
- object[] args = new object[] { text };
- AddStatusDelegate add_status_delegate = AddStatus;
- this.Invoke(add_status_delegate, args);
- Console.WriteLine(text);
- return;
- }
- }
- private void przycisk_Click(object sender, EventArgs e)
- {
- ReadFromGui();
- if (GraphThread == null)
- {
- AddStatus("Starting thread");
- GraphThread = new Thread(DrawAGraphAndScores)
- {
- IsBackground = true
- };
- GraphThread.Start();
- przycisk.Text = "Stop";
- AddStatus("Thread Started");
- }
- else
- {
- AddStatus("Stopping thread");
- GraphThread.Abort();
- GraphThread = null;
- AddStatus("Thread stopped");
- przycisk.Text = "Start";
- }
- }
- private void label1_Click(object sender, EventArgs e)
- {
- }
- private void IterBox_TextChanged(object sender, EventArgs e)
- {
- }
- private void EtaBox_TextChanged(object sender, EventArgs e)
- {
- }
- private void LRBox_TextChanged(object sender, EventArgs e)
- {
- }
- private void neuronBox_TextChanged(object sender, EventArgs e)
- {
- }
- private void useBias_CheckedChanged(object sender, EventArgs e)
- {
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void WykresBledu_Click(object sender, EventArgs e)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement