Exemple #1
0
 protected virtual void OnEndEpochEvent(EndEpochEventArgs e)
 {
     if (EndEpochEvent != null)
     {
         EndEpochEvent(this, e);
     }
 }
Exemple #2
0
        private void nn_EndEpochEvent(object sender, EndEpochEventArgs e)
        {
            if (chbVisualization.Checked)
            {
                outputDataChart.Series[0].Clear();
                for (int i = 0; i < nn.OutputLayerDimension; i++)
                {
                    for (int j = 0; j < nn.OutputLayerDimension; j++)
                    {
                        outputDataChart.Series[0].Add(nn.OutputLayer[i, j].Weights[0], nn.OutputLayer[i, j].Weights[1]);
                    }
                }
            }

            Application.DoEvents();
        }
Exemple #3
0
        /// <summary>
        ///     1 эпоха = однократная подача всех обучающих примеров
        ///     Этапы 4 и 5 67
        /// </summary>
        /// <param name="pattern"></param>
        /// <param name="iteration"></param>
        private void StartEpoch(List <double> pattern, int iteration)
        {
            var Winner = FindWinner(pattern);

            CurrentDelta = 0;
            for (var i = 0; i < OutputLayer.Count; i++)
            {
                for (var j = 0; j < OutputLayer[0].Count; j++)
                {
                    CurrentDelta += OutputLayer[i][j].ModifyWeights(pattern, Winner.Coordinate, currentIteration, function,
                                                                    OutputLayer.Count * OutputLayer[0].Count);
                }
            }
            currentIteration++;
            CurrentDelta = Math.Abs(CurrentDelta / (OutputLayer.Count * OutputLayer[0].Count));
            var e = new EndEpochEventArgs();

            OnEndEpochEvent(e);
        }
Exemple #4
0
        private void EndEpochEvent(object sender, EndEpochEventArgs e)
        {
            if (isVisibleOutputVectors.Checked)
            {
                outputChart.Series["OutputVectors"].Points.Clear();
                for (var i = 0; i < nn.OutputLayerDimensionInitialize; i++)
                {
                    for (var j = 0; j < nn.OutputLayerDimensionInitialize; j++)
                    {
                        outputChart.Series["OutputVectors"].Points
                        .AddXY(
                            (object)(double.TryParse(nn.OutputLayer[i][j].Weights[0].ToString(), out var d)
                                ? ValidateDataForChart(d)
                                : 0),
                            double.TryParse(nn.OutputLayer[i][j].Weights[1].ToString(), out var f)
                                ? ValidateDataForChart(f)
                                : 0);
                    }
                }
            }

            Application.DoEvents();
        }