How is dmeans calculated in the cudnnDivisiveNormalizationBackward

Hello, I want to know how is dmeans calculated in the cudnnDivisiveNormalizationBackward.

It is described in the document that average pooling is used, but when I set the three tensors of dout, din, and means to natural numbers(1,2,3,…), the result of dmeans is not the result I expected according to average pooling.

This result confuses me, I hope someone can help me.

Hi @ftlve2014 ,
Can you please help on which document you are referring to?


Hi, thanks for your reply.

destDiffMeans result should be backpropagated through the user's means layer (which can be implemented using average pooling) and added to the destDiffData tensor produced by cudnnDivisiveNormalizationBackward()

According to this description, I understand that average pooling is used in this interface. Am I wrong?
And I’m confused what is the cost used to calculate dmeans, is it part from dy?