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; }
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(); } }