public override void CalcGradients(List <double[]> inputs, Layer outputlayer) { for (int b = 0; b < NN.BatchSize; b++) { //var input = inputs[i]; //if (UsesTanh) { input = Maths.TanhDerriv(inputs[i]); } double[,] Input = Pad(Maths.Convert(inputs[b])); double[,] stochgradients; if (DownOrUp) { stochgradients = Convolve(Maths.Convert(Errors[b]), Input); } else { stochgradients = Convolve(Input, Maths.Convert(Errors[b])); } //Gradients = stochgradients; //Add the stochastic gradients to the batch gradients for (int j = 0; j < Gradients.GetLength(0); j++) { for (int k = 0; k < Gradients.GetLength(1); k++) { Gradients[j, k] += stochgradients[j, k]; } } } }