diff options
author | Soumith Chintala <soumith@gmail.com> | 2016-08-06 06:30:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-06 06:30:57 +0300 |
commit | 05e29cd88358faf2aded623dca14a2f808242cc4 (patch) | |
tree | 5217fb65540afbdbad4d72fa0abf9bff28ade3d3 /TemporalConvolution.lua | |
parent | 103e6ed51df3a909053c2a524d9e6fc6b35cbf60 (diff) |
Revert "Refactoring CUDNN Find"revert-231-algo
Diffstat (limited to 'TemporalConvolution.lua')
-rw-r--r-- | TemporalConvolution.lua | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/TemporalConvolution.lua b/TemporalConvolution.lua index 947cc4f..4648ffd 100644 --- a/TemporalConvolution.lua +++ b/TemporalConvolution.lua @@ -6,8 +6,6 @@ local TemporalConvolution, parent = --it is recommended to pass padding parameter to this routine and use cudnn implicit padding facilities. --limitation is that padding will be equal on both sides. -local Convolution = cudnn.SpatialConvolution - function TemporalConvolution:__init(inputFrameSize, outputFrameSize, kH, dH, padH) local delayedReset = self.reset @@ -16,8 +14,7 @@ function TemporalConvolution:__init(inputFrameSize, outputFrameSize, local nOutputPlane = outputFrameSize self.inputFrameSize = inputFrameSize self.outputFrameSize = outputFrameSize - self.nDim = 4 - Convolution.__init(self, nInputPlane, nOutputPlane, kW, kH, 1, dH,0,padH) + cudnn.SpatialConvolution.__init(self, nInputPlane, nOutputPlane, kW, kH, 1, dH,0,padH) self.weight = self.weight:view(nOutputPlane,inputFrameSize*kH) self.gradWeight = self.gradWeight:view(outputFrameSize, inputFrameSize*kH) --self.dW and self.kW now have different meaning than in nn.TemporalConvolution, because @@ -31,24 +28,24 @@ function TemporalConvolution:createIODescriptors(input) or input:size(3) ~= self.iSize[3] or input:size(4) ~= self.iSize[4] then sizeChanged = true end - Convolution.createIODescriptors(self,input) + cudnn.SpatialConvolution.createIODescriptors(self,input) if sizeChanged then self.oSize = self.output:size() end end function TemporalConvolution:fastest(mode) - self = Convolution.fastest(self,mode) + self = cudnn.SpatialConvolution.fastest(self,mode) return self end function TemporalConvolution:setMode(fmode, bdmode, bwmode) - self = Convolution.setMode(self,fmode, bdmode, bwmode) + self = cudnn.SpatialConvolution.setMode(self,fmode, bdmode, bwmode) return self end function TemporalConvolution:resetWeightDescriptors() - Convolution.resetWeightDescriptors(self) + cudnn.SpatialConvolution.resetWeightDescriptors(self) end local function inputview(input) @@ -66,7 +63,7 @@ function TemporalConvolution:updateOutput(input) self._output = self._output or input.new() if self.output:storage() then self._output:set(self.output:storage()) else self._output = self.output end if self.buffer:storage() then self.output:set(self.buffer:storage(), 1, self.output:size()) else self.output = self.buffer end - Convolution.updateOutput(self,_input) + cudnn.SpatialConvolution.updateOutput(self,_input) self.buffer = self.output:view(self.oSize):transpose(2,3) self.output = self._output:resize(self.buffer:size()):copy(self.buffer) -- self.output here is always 4D, use input dimensions to properly view output @@ -95,7 +92,7 @@ function TemporalConvolution:updateGradInput(input, gradOutput) if not self.gradInput then return end local _gradOutput = transposeGradOutput(gradOutput,self.buffer) local _input = inputview(input) - self.gradInput = Convolution.updateGradInput(self,_input, _gradOutput) + self.gradInput = cudnn.SpatialConvolution.updateGradInput(self,_input, _gradOutput) if input:dim()==3 then self.gradInput = self.gradInput:view(self.iSize[1],self.iSize[3],self.iSize[4]) else @@ -109,7 +106,7 @@ function TemporalConvolution:accGradParameters(input,gradOutput,scale) local _input = inputview(input) -- transpose gradOutput (it will likely be transposed twice, hopefully, no big deal local _gradOutput = transposeGradOutput(gradOutput,self.buffer) - Convolution.accGradParameters(self,_input,_gradOutput,scale) + cudnn.SpatialConvolution.accGradParameters(self,_input,_gradOutput,scale) end function TemporalConvolution:clearDesc() @@ -120,7 +117,7 @@ end function TemporalConvolution:write(f) self:clearDesc() - Convolution.clearDesc(self) + cudnn.SpatialConvolution.clearDesc(self) local var = {} for k,v in pairs(self) do var[k] = v |