diff options
Diffstat (limited to 'contrib/lua-torch/nn/Contiguous.lua')
-rwxr-xr-x | contrib/lua-torch/nn/Contiguous.lua | 21 |
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 |