I am researching source code of caffe about BaseConvolutionLayer<Dtype>::backward_cpu_gemm function. I found that the BP algorithm of convolution, in the book, need to rotate the weight 180 degree, and then making top_diff * weight(after 180 degree) can get the bottom_diff.
But in caffe code . i found that, in BaseConvolutionLayer<Dtype>::backward_cpu_gemm function, we first make weight do transpose ,getting transposed weight and then do caffe_cpu_gemm to get bottom_diff.
I do not know , why there are difference ......Thanks for your helping....
Hi everyone:
I am researching source code of caffe about
BaseConvolutionLayer<Dtype>::backward_cpu_gemm
function. I found that the BP algorithm of convolution, in the book, need to rotate the weight 180 degree, and then making top_diff * weight(after 180 degree) can get the bottom_diff.But in caffe code . i found that, in
BaseConvolutionLayer<Dtype>::backward_cpu_gemm
function, we first make weight do transpose ,getting transposed weight and then do caffe_cpu_gemm to get bottom_diff.I do not know , why there are difference ......Thanks for your helping....
this is code