private double[,,] ComputeInputGradients(double[,,] input) { var transposed = Kernels .Transpose() .Select(q => q.Rotate()) .ToArray(); var padded = input.Pad(KernelSize - 1); return(MatrixHelper.Convolution(transposed, padded)); }