Пример #1
0
        private void btnInitializeNetwork_Click(object sender, EventArgs e)
        {
            (sender as Button).Enabled = false;
            int    tranFun     = indexOfTransFunc;
            int    NumOfInputs = (int)numUpDownNumberOfInputs.Value;
            int    Epoch       = (int)numUpDownEpochNum.Value;
            double teachSpeed;

            if (!double.TryParse(txtTeachingSpeed.Text, out teachSpeed))
            {
                MessageBox.Show("Не правильный формат введенной скорости обучения"); (sender as Button).Enabled = true; return;
            }
            if (teachSpeed > 1)
            {
                teachSpeed = 1;
            }
            if (teachSpeed < 0.1)
            {
                teachSpeed = 0.1;
            }
            txtTeachingSpeed.Text = teachSpeed.ToString();
            Network.HiddenLayersInfo hiddenLayersInfo = ReadHiddenLayersInfo();
            net = new Network(NumOfInputs, hiddenLayersInfo, Epoch, tranFun, teachSpeed);
            string schema = NumOfInputs.ToString();

            for (int i = 0; i < hiddenLayersInfo.NumberOfNeuronsOnEachLayer.Length; i++)
            {
                schema += $"-{hiddenLayersInfo.NumberOfNeuronsOnEachLayer[i]}";
            }
            MessageBox.Show($"Нейросеть инициализирована по схеме\n{schema}");
            labelSchema.Text           = $"Схема: {schema}";
            (sender as Button).Enabled = true;
        }
Пример #2
0
 //Передача инфы по слоям
 private Network.HiddenLayersInfo ReadHiddenLayersInfo()
 {
     Network.HiddenLayersInfo result = new Network.HiddenLayersInfo();
     result.NumberOfLayers             = (int)numHiddenLayersNum.Value + 1;
     result.NumberOfNeuronsOnEachLayer = new int[result.NumberOfLayers];
     for (int i = 0; i < result.NumberOfLayers - 1; i++)
     {
         int temp;
         if (int.TryParse(dataGridNeuronNumbers.Rows[i].Cells["Neurons"].Value.ToString(), out temp))
         {
             if (temp < 1 || temp > 20)
             {
                 throw new Exception($"Обнаружено некорректное значение на слое {i + 1}");
             }
             result.NumberOfNeuronsOnEachLayer[i] = temp;
         }
         else
         {
             throw new Exception($"Поле ввода заполнено некорректно. Невозможно прочитать количество нейронов на слое {i + 1}");
         }
     }
     result.NumberOfNeuronsOnEachLayer[result.NumberOfLayers - 1] = (int)numUpDownNumberOfOutputs.Value;
     return(result);
 }