Hi @tom @fbcotter.
One thing that appears to be different between both of your implementations is the requires_grad parameter. As far as I can understand @tom’s solution does not explicitly state that the convolution layer parameters have requires_grad = False and thus they would get updated at backprop (as would any kernel of a conv2d or transposeconv2d layer). Similarly in @fbcotter’s repo, the parameters are explicitly marked with requires_grad = False.
For my implementation I need a 1D wavelet based loss, so I would require the parameters to have requires_grad = False, it seems like it might be slightly easier for me to adapt tom’s version, so I wanted to make sure I understand this before going ahead and using the code.
Thanks again for these awesome contributions!