Esempio n. 1
0
        private void utworzSiecBtn_Click(object sender, EventArgs e)
        {
            if (strukturaSieci.Count < 2)
            {
                MessageBox.Show("schemat sieci jest nieprawidłowy!!");
                return;
            }
            Siec siec = new Siec(strukturaSieci.ToArray());

            siec.wyswietlListeNeuronowZWagami();
            this.siec = siec;
            zapiszDoPlikuBtn.Enabled = true;
        }
Esempio n. 2
0
        private void zatwierdzBtn_Click(object sender, EventArgs e)
        {
            sciezkaPlikuZWagami = this.sciezkaDoPlikuZWagamiBox.Text;
            (listaWagZPliku, strukturaSieci) = OdczytZapis.wczytajWagi(@sciezkaPlikuZWagami);
            foreach (int i in strukturaSieci)
            {
                Console.WriteLine(i);
            }
            this.przeuczSiecBtn.Enabled = true;

            this.testPanel.Visible = true;
            //sciec do testowania po wczytaniu wag z pliku
            this.siec = new Siec(strukturaSieci, listaWagZPliku);
        }
Esempio n. 3
0
        private void przeuczSiecBtn_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Title = "Wybierz plik z próbkami";

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                if (Path.GetExtension(openFileDialog.FileName) != ".txt")
                {
                    MessageBox.Show("Plik musi być w formacie txt");
                    return;
                }
                sciezkaPlikuZprobkami = openFileDialog.FileName;
            }
            if (sciezkaPlikuZprobkami == "")
            {
                return;
            }

            listaProbek = OdczytZapis.wczytajProbki(sciezkaPlikuZprobkami);

            foreach (var c in listaProbek)
            {
                foreach (var ef in c)
                {
                    Console.Write(ef + " ");
                }
                Console.WriteLine();
            }

            Siec siec = new Siec(strukturaSieci, listaWagZPliku);

            this.siec = siec;
            Propagacja propagacja = new Propagacja(siec);

            propagacja.parametrBeta = double.Parse(parametrBetaBox.Text);

            PrzeuczSiec.przeuczSiec(listaProbek, siec, propagacja, strukturaSieci[0]);
            warstwy = siec.warstwy;

            zapiszWagiBtn.Enabled = true;
            testPanel.Visible     = true;
        }
Esempio n. 4
0
        public void nadpiszWagi(Siec siec, List <List <double> > korektyWagCalejSieci)
        {
            korektyWagCalejSieci.Reverse();
            int indeksWarstwy = 0;

            foreach (var warstwa in siec.warstwy)
            {
                int indeksNeuronu = 0;

                foreach (var neuron in warstwa)
                {
                    foreach (var listaWagNeuronu in neuron.listaWag)
                    {
                        listaWagNeuronu.waga += korektyWagCalejSieci[indeksWarstwy][indeksNeuronu];
                        //Console.WriteLine(listaWagNeuronu.waga);
                        indeksNeuronu++;
                    }
                }
                indeksWarstwy++;
            }
            korektyWagCalejSieci.Reverse();
        }
Esempio n. 5
0
 public static void przeuczSiec(List <double[]> listaProbek, Siec siec, Propagacja propagacja, int iloscWejsc)
 {
     for (int j = 0; j < 20000; j++)
     {
         for (int i = 0; i < listaProbek.Count; i++)
         {
             // siec.wyswietlListeNeuronowZWagami();
             siec.wyliczWartoscWyjsciowaSieci(siec.warstwy, listaProbek[i]);
             propagacja.wyliczBlad(listaProbek[i].Skip(iloscWejsc).ToArray());
             propagacja.wyliczKoretke(listaProbek[i], iloscWejsc);
         }
         randomizujListe(listaProbek);
         if (j % 1000 == 0)
         {
             Console.WriteLine("\n========================================");
             Console.WriteLine("Epoka: " + j);
             propagacja.wyswietlKOrektyWszystkichWag(propagacja.korektyWagCalejSieci);
         }
         //nadpisanie wag po propagacji wszystkich probek
         propagacja.nadpiszWagi(siec, propagacja.korektyWagCalejSieci);
         propagacja.korektyWagCalejSieci.Clear();
     }
 }
Esempio n. 6
0
 public Propagacja(Siec siec)
 {
     this.siec = siec;
 }