_convolution_double_backward() parameters

Hi @albanD, thanks for your explanation about the definition of _convolution_double_backward(). When reading this code, I was confused about the parameter like ggI, ggW_r, ggb and gO_r and output_mask and the target of calculating ggW, gI and gW.

Under my superficial understanding of all these, ggW_r means the gradient of convolution kernel? xx_r means a requirement, ggb is the gradient of bias.

Really hope your advice on how to realize these parameters and the calculation of ggW, gI and gW.

Thank you very much!


I’m not sure about the *_r variables. Most likely some some cpp reasons.
The gg* variables contain the gradient of the gradient of something.
Since the forward is I, W, b -> O
the backward is gO, I, W -> gI, gW, gb
and the double backward ggI, ggW, ggb -> ggO, gI, gW

1 Like

very appreciate to your answer, thank you !