Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/soumith/cudnn.torch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoumith Chintala <soumith@gmail.com>2016-08-06 06:30:57 +0300
committerGitHub <noreply@github.com>2016-08-06 06:30:57 +0300
commit05e29cd88358faf2aded623dca14a2f808242cc4 (patch)
tree5217fb65540afbdbad4d72fa0abf9bff28ade3d3 /TemporalConvolution.lua
parent103e6ed51df3a909053c2a524d9e6fc6b35cbf60 (diff)
Revert "Refactoring CUDNN Find"revert-231-algo
Diffstat (limited to 'TemporalConvolution.lua')
-rw-r--r--TemporalConvolution.lua21
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