protected virtual void OnEndEpochEvent(EndEpochEventArgs e) { if (EndEpochEvent != null) { EndEpochEvent(this, e); } }
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(); }
/// <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); }
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(); }