diff options
author | Michael 'myrhev' Mathieu <michael.mathieu@ens.fr> | 2012-04-27 00:32:15 +0400 |
---|---|---|
committer | Michael 'myrhev' Mathieu <michael.mathieu@ens.fr> | 2012-04-27 00:50:18 +0400 |
commit | 300bd31b0ec5bc108ce78b4f3730f8c67fc5a8bc (patch) | |
tree | 1e740a1d333966c20315ced3ccf25bca1d1cbacb /SpatialPyramid.lua | |
parent | c551b07dabd2beebdfe7e534e2a8dd247077c61d (diff) |
Add SpatialReSamplingEx (grouping all the Spatial*Sampling).
SpatialPadding can now pad on dimensions different than (2,3).
Add Tic/Toc modules, to time a network
Diffstat (limited to 'SpatialPyramid.lua')
-rw-r--r-- | SpatialPyramid.lua | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/SpatialPyramid.lua b/SpatialPyramid.lua index 7fb81c1..e5988de 100644 --- a/SpatialPyramid.lua +++ b/SpatialPyramid.lua @@ -23,7 +23,8 @@ If prescaled_input is true, then the input has to be a table of pre-downscaled 3D tensors. It does not work in focus mode. ]] -function SpatialPyramid:__init(ratios, processors, kW, kH, dW, dH, prescaled_input) +function SpatialPyramid:__init(ratios, processors, kW, kH, dW, dH, xDimIn, yDimIn, + xDimOut, yDimOut, prescaled_input) parent.__init(self) self.prescaled_input = prescaled_input or false assert(#ratios == #processors) @@ -51,8 +52,9 @@ function SpatialPyramid:__init(ratios, processors, kW, kH, dW, dH, prescaled_inp self.focused_pipeline = nn.ConcatTable() for i = 1,#self.ratios do local seq = nn.Sequential() - seq:add(nn.SpatialZeroPadding(0,0,0,0)) - seq:add(nn.SpatialDownSampling(self.ratios[i], self.ratios[i])) + seq:add(nn.SpatialPadding(0,0,0,0, yDimIn, xDimIn)) + seq:add(nn.SpatialReSamplingEx{rwidth=1.0/self.ratios[i], rheight=1.0/self.ratios[i], + xDim = xDimIn, yDim = yDimIn, mode='average'}) seq:add(processors[i]) self.focused_pipeline:add(seq) end @@ -66,11 +68,13 @@ function SpatialPyramid:__init(ratios, processors, kW, kH, dW, dH, prescaled_inp for i = 1,#self.ratios do local seq = nn.Sequential() if not prescaled_input then - seq:add(nn.SpatialDownSampling(self.ratios[i], self.ratios[i])) - seq:add(nn.SpatialZeroPadding(padLeft, padRight, padTop, padBottom)) + seq:add(nn.SpatialReSamplingEx{rwidth=1.0/self.ratios[i], rheight=1.0/self.ratios[i], + xDim = xDimIn, yDim = yDimIn, mode='average'}) + seq:add(nn.SpatialPadding(padLeft, padRight, padTop, padBottom, yDimIn, xDimIn)) end seq:add(processors[i]) - seq:add(nn.SpatialUpSampling(self.ratios[i], self.ratios[i])) + seq:add(nn.SpatialReSamplingEx{rwidth=self.ratios[i], rheight=self.ratios[i], + xDim=xDimOut, yDim=yDimOut, mode='simple'}) self.unfocused_pipeline:add(seq) end end |