diff options
author | Clement Farabet <clement.farabet@gmail.com> | 2014-07-04 07:06:24 +0400 |
---|---|---|
committer | Clement Farabet <clement.farabet@gmail.com> | 2014-07-04 07:06:24 +0400 |
commit | 5b640df933ac92eafb7a9cfa72a39506f261ee74 (patch) | |
tree | f7a60a6b3eae59ca350478c88bf042b73f142e1b | |
parent | d5c68692549dbcdfc84dd6a0d6255cdc8f1518b9 (diff) |
Patched accGradParameters to avoid doing dev->host copy (CUDA)
-rw-r--r-- | SpatialConvolutionCUDA.lua | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/SpatialConvolutionCUDA.lua b/SpatialConvolutionCUDA.lua index baa79af..cdb22b3 100644 --- a/SpatialConvolutionCUDA.lua +++ b/SpatialConvolutionCUDA.lua @@ -55,9 +55,8 @@ function SpatialConvolutionCUDA:accGradParameters(input, gradOutput, scale) if self.partialSum > 0 then self.gradWeight:add(self.gradWeightPartial:sum(1):resizeAs(self.gradWeight)) end - for i = 1,self.nOutputPlane do - self.gradBias:narrow(1,i,1):add(scale * gradOutput[i]:sum() ) - end + local sums = gradOutput:new():resize(gradOutput:size(1), gradOutput:size(2)*gradOutput:size(3)*gradOutput:size(4)):sum(2) + self.gradBias:add(scale, sums) end -- this routine copies weight+bias from a regular SpatialConvolution module |