diff options
author | Francisco Massa <fvsmassa@gmail.com> | 2016-01-31 17:32:30 +0300 |
---|---|---|
committer | Francisco Massa <fvsmassa@gmail.com> | 2016-02-18 01:20:06 +0300 |
commit | b339dad44739267bd79a0eae0fb158bfcab5991b (patch) | |
tree | 796bf8399aaf47c0a3eb215e56057b490528809b /SpatialConvolutionLocal.lua | |
parent | 6f2b4380369aa61a29f1ac2e9f2954cf64ae7172 (diff) |
Add THNN conversion for Spatial* modules
Add THNN conversion of SpatialBatchNormalization, SpatialFractionalMaxPooling and SpatialSubSampling
Add THNN convertion of SpatialConvolutionLocal, SpatialFullConvolution and SpatialUpSamplingNearest
THNN conversion of SpatialMaxUnpooling
Remove unfold from generic
Add functional conversion of SpatialCrossMapLRN
Plus fix in the init.c
Fix
Diffstat (limited to 'SpatialConvolutionLocal.lua')
-rw-r--r-- | SpatialConvolutionLocal.lua | 49 |
1 files changed, 43 insertions, 6 deletions
diff --git a/SpatialConvolutionLocal.lua b/SpatialConvolutionLocal.lua index 75090c5..dd89db6 100644 --- a/SpatialConvolutionLocal.lua +++ b/SpatialConvolutionLocal.lua @@ -119,9 +119,21 @@ function SpatialConvolutionLocal:updateOutput(input) checkInputSize(self, input) viewWeight(self) input = makeContiguous(self, input) - local out = input.nn.SpatialConvolutionLocal_updateOutput(self, input) + input.THNN.SpatialConvolutionLocal_updateOutput( + input:cdata(), + self.output:cdata(), + self.weight:cdata(), + self.bias:cdata(), + self.finput:cdata(), + self.fgradInput:cdata(), + self.kW, self.kH, + self.dW, self.dH, + self.padW, self.padH, + self.iW, self.iH, + self.oW, self.oH + ) unviewWeight(self) - return out + return self.output end function SpatialConvolutionLocal:updateGradInput(input, gradOutput) @@ -130,20 +142,45 @@ function SpatialConvolutionLocal:updateGradInput(input, gradOutput) if self.gradInput then viewWeight(self) input, gradOutput = makeContiguous(self, input, gradOutput) - local out = input.nn.SpatialConvolutionLocal_updateGradInput(self, input, gradOutput) + input.THNN.SpatialConvolutionLocal_updateGradInput( + input:cdata(), + gradOutput:cdata(), + self.gradInput:cdata(), + self.weight:cdata(), + self.finput:cdata(), + self.fgradInput:cdata(), + self.kW, self.kH, + self.dW, self.dH, + self.padW, self.padH, + self.iW, self.iH, + self.oW, self.oH + ) unviewWeight(self) - return out + return self.gradInput end end function SpatialConvolutionLocal:accGradParameters(input, gradOutput, scale) + scale = scale or 1 checkInputSize(self, input) checkOutputSize(self, input, gradOutput) input, gradOutput = makeContiguous(self, input, gradOutput) viewWeight(self) - local out = input.nn.SpatialConvolutionLocal_accGradParameters(self, input, gradOutput, scale) + input.THNN.SpatialConvolutionLocal_accGradParameters( + input:cdata(), + gradOutput:cdata(), + self.gradWeight:cdata(), + self.gradBias:cdata(), + self.finput:cdata(), + self.fgradInput:cdata(), + self.kW, self.kH, + self.dW, self.dH, + self.padW, self.padH, + self.iW, self.iH, + self.oW, self.oH, + scale + ) unviewWeight(self) - return out end function SpatialConvolutionLocal:type(type,tensorCache) |