diff options
author | Soumith Chintala <soumith@gmail.com> | 2014-09-26 20:14:36 +0400 |
---|---|---|
committer | Soumith Chintala <soumith@gmail.com> | 2014-09-26 20:47:31 +0400 |
commit | 2da6353dc28457c5b8dd758d552026c9aebdbcba (patch) | |
tree | 05e4b1ea5985e3f91c48d716004400fb44957231 /SpatialMaxPooling.lua | |
parent | 440ea8adeda929efc637316585446eb9996bd6fe (diff) |
adding serialization to unit tests and fixing descriptor checks. Fixes #4
Diffstat (limited to 'SpatialMaxPooling.lua')
-rw-r--r-- | SpatialMaxPooling.lua | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/SpatialMaxPooling.lua b/SpatialMaxPooling.lua index 6b211e7..2687a3e 100644 --- a/SpatialMaxPooling.lua +++ b/SpatialMaxPooling.lua @@ -25,7 +25,8 @@ function SpatialMaxPooling:resetPoolDescriptors() end function SpatialMaxPooling:createIODescriptors(input) - if input:size(1) ~= self.iSize[1] or input:size(2) ~= self.iSize[2] + if not self.iDesc or not self.oDesc or + input:size(1) ~= self.iSize[1] or input:size(2) ~= self.iSize[2] or input:size(3) ~= self.iSize[3] or input:size(4) ~= self.iSize[4] then self.iSize = input:size() -- resize gradInput @@ -54,6 +55,8 @@ end function SpatialMaxPooling:updateGradInput(input, gradOutput) assert(input:dim() == 4 and input:isContiguous()); assert(gradOutput:dim() == 4 and gradOutput:isContiguous()); + if not self.poolDesc then self:resetPoolDescriptors() end + self:createIODescriptors(input) errcheck('cudnnPoolingBackward', cudnn.handle[cutorch.getDevice()-1], self.poolDesc[0], self.oDesc[0], self.output:data(), self.oDesc[0], gradOutput:data(), |