Yes. This is solvable. Conv2d is the same as correlate2d. Checked for random inputs and the results deviate in the order of power -8 (which means basically the results are the same). It does a valid convolution. So your best choice is to reflect boundaries after convolution or before convolution using torch nn functional pad. Do not do any interpolation either before or after convolution to change the size of the image. This leads to poor results. Best bet is to do reflect padding either post or pre convolution. Also, yes set weight.data to the filter that you wish to use. bias should be set to false or zero.