public void BackwardStep(double[] outputLayerGradient, double learningRate, double[] inputResult) { var flattenLayerGradient = Perceptron.BackwardStep(learningRate, FlattenLayer.LastOutput, inputResult, outputLayerGradient); var gradientToProcess = FlattenLayer.ProcessBackpropMaps(flattenLayerGradient); for (int i = LayersCount - 1; i > -1; --i) { gradientToProcess = Layers[i].ProcessBackpropMaps(gradientToProcess); } }