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

github.com/torch/nn.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Massa <fvsmassa@gmail.com>2016-01-31 17:32:30 +0300
committerFrancisco Massa <fvsmassa@gmail.com>2016-02-18 01:20:06 +0300
commitb339dad44739267bd79a0eae0fb158bfcab5991b (patch)
tree796bf8399aaf47c0a3eb215e56057b490528809b /SpatialConvolutionLocal.lua
parent6f2b4380369aa61a29f1ac2e9f2954cf64ae7172 (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.lua49
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)