From cb303329bd82f1bb80d3c7eebc14d41195acec83 Mon Sep 17 00:00:00 2001 From: Sergey Zagoruyko Date: Wed, 4 Mar 2015 15:39:05 +0100 Subject: SpatialAveragePooling divides by kW*kH --- SpatialAveragePooling.lua | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'SpatialAveragePooling.lua') diff --git a/SpatialAveragePooling.lua b/SpatialAveragePooling.lua index 13b6b45..90b79aa 100644 --- a/SpatialAveragePooling.lua +++ b/SpatialAveragePooling.lua @@ -7,14 +7,26 @@ function SpatialAveragePooling:__init(kW, kH, dW, dH) self.kH = kH self.dW = dW or 1 self.dH = dH or 1 + self.divide = true end function SpatialAveragePooling:updateOutput(input) - return input.nn.SpatialAveragePooling_updateOutput(self, input) + input.nn.SpatialAveragePooling_updateOutput(self, input) + -- for backward compatibility with saved models + -- which are not supposed to have "divide" field + if not self.divide then + self.output:mul(self.kW*self.kH) + end + return self.output end function SpatialAveragePooling:updateGradInput(input, gradOutput) if self.gradInput then - return input.nn.SpatialAveragePooling_updateGradInput(self, input, gradOutput) + input.nn.SpatialAveragePooling_updateGradInput(self, input, gradOutput) + -- for backward compatibility + if not self.divide then + self.gradInput:mul(self.kW*self.kH) + end + return self.gradInput end end -- cgit v1.2.3