Hi,
Did you worked out all the math of what is the backward of the backward of a convolution ?
Intuitively I would guess it corresponds to a regular conv with modified parameters?
More explicitely, if your forward is:
out = conv2d(input, weight, bias, stride, padding, dilation, groups)
Then the backward can be writen as:
gradInput = conv_transpose2d(gradOuput, weight, bias, new_stride, new_padding, new_output_paddin, new_groups, new_dilation)
Where all the new_* parameters are computed given the parameters from the original conv.
Now you would need the following:
gradGradOutput = conv2d(gradGradInput, weight, bias, new_new_stride, new_new_padding, new_new_dilation, new_new_groups)
where the new_new_* parameters are a function of the new_* parameters (and thus the original parameters).
If you have these, I can help you to add this feature.