updated convolution gradient version