コード例 #1
0
        private void button_Koh_Click(object sender, EventArgs e)
        {
            gr.Clear(BackColor);
            for (int i = 0; i < knet.HiddenLayers.Count; i++)
            {
                for (int j = 0; j < knet.HiddenLayers[i].neurons.Count; j++)
                {
                    VectorRGB s = new VectorRGB(
                        knet.HiddenLayers[i].neurons[j].inLinks[0].w,
                        knet.HiddenLayers[i].neurons[j].inLinks[1].w,
                        knet.HiddenLayers[i].neurons[j].inLinks[2].w
                        );

                    gr.DrawEllipse(new Pen(s.ToColor(), 10), 20 * (i + 1), 50 * (j + 1), 20, 20);
                    neuroPoint.Add(new Point(20 * (i + 1), 50 * (j + 1) + 10));
                }
            }

            double koefKoh = 1.3, addingKoef = 0.1;

            for (int i = 0; i < vectors.Count; i++)
            {
                knet.InputLayer.neurons[0].imp = vectors[i].r / 255d;
                knet.InputLayer.neurons[1].imp = vectors[i].g / 255d;
                knet.InputLayer.neurons[2].imp = vectors[i].b / 255d;

                knet.RunIteration();

                int winneri = 0, winnerj = 0;

                var b = knet.Study(koefKoh, out winneri, out winnerj, addingKoef);

                if (b)
                {
                    pictureBox_NeuroShedule.Image = PointNeuron.Draw(knet, pictureBox_NeuroShedule.Width, pictureBox_NeuroShedule.Height, out listPointNeuron);
                }

                //gr.DrawRectangle(new Pen(vectors[i].ToColor(), 10), (float)(pictureBox_NeuroWorking.Width * i / vectors.Count), neuroPoint[neunum].Y, 10, 10);

                knet.ClearImps();
            }

            //!
            textBoxInfo.Text = "";
            for (int i = 0; i < knet.HiddenLayers[0].neurons.Count; i++)
            {
                for (int j = 0; j < knet.HiddenLayers[0].neurons[i].inLinks.Count; j++)
                {
                    textBoxInfo.Text += "hl" + i + "," + j + ": " + knet.HiddenLayers[0].neurons[i].inLinks[j].w + Environment.NewLine;
                }
                textBoxInfo.Text += Environment.NewLine;
            }

            pictureBox_NeuroWorking.Image = bitmap;
        }
コード例 #2
0
        public DrawingForm()
        {
            InitializeComponent();
            bitmap = new Bitmap(pictureBox_NeuroWorking.Width, pictureBox_NeuroWorking.Height);
            gr     = Graphics.FromImage(bitmap);


            net  = new StandartNet(2, 6, 4, 1);
            knet = new KochonenNet(3, 4);
            //pictureBox_NeuroShedule.Image = DrawNeuronet(pictureBox_NeuroShedule.Width, pictureBox_NeuroShedule.Height);

            pictureBox_NeuroShedule.Image = PointNeuron.Draw(net, pictureBox_NeuroShedule.Width, pictureBox_NeuroShedule.Height, out listPointNeuron);


            net.ClearImps();
        }
コード例 #3
0
 private void button_Load_Click(object sender, EventArgs e)
 {
     net.LoadXml(localpath);
     pictureBox_NeuroShedule.Image = PointNeuron.Draw(net, pictureBox_NeuroShedule.Width, pictureBox_NeuroShedule.Height, out listPointNeuron);
 }