summaryrefslogtreecommitdiffstats
path: root/contrib/lua-torch/nn/Contiguous.lua
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/lua-torch/nn/Contiguous.lua')
-rwxr-xr-xcontrib/lua-torch/nn/Contiguous.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/contrib/lua-torch/nn/Contiguous.lua b/contrib/lua-torch/nn/Contiguous.lua
new file mode 100755
index 000000000..f9974ce5a
--- /dev/null
+++ b/contrib/lua-torch/nn/Contiguous.lua
@@ -0,0 +1,21 @@
+local Contiguous, parent = torch.class('nn.Contiguous', 'nn.Module')
+
+function Contiguous:updateOutput(input)
+ if not input:isContiguous() then
+ if self.output:storage() == input:storage() then self.output:set() end
+ self.output:resizeAs(input):copy(input)
+ else
+ self.output:set(input)
+ end
+ return self.output
+end
+
+function Contiguous:updateGradInput(input, gradOutput)
+ if not gradOutput:isContiguous() then
+ if self.gradInput:storage() == gradOutput:storage() then self.gradInput:set() end
+ self.gradInput:resizeAs(gradOutput):copy(gradOutput)
+ else
+ self.gradInput:set(gradOutput)
+ end
+ return self.gradInput
+end