diff options
author | Clement Farabet <clement.farabet@gmail.com> | 2012-03-03 10:20:56 +0400 |
---|---|---|
committer | Clement Farabet <clement.farabet@gmail.com> | 2012-03-03 10:20:56 +0400 |
commit | 3d62e1bbc2f509c3a3a5e0f727de7f414a708d2d (patch) | |
tree | f77177ce01e04aeacbe4f421b7eb162b3065eb8b | |
parent | cfd9829a7c50977c62aa0886b6271ed29e2b7b84 (diff) |
Implementing a call operator for nn modules and criterions.
-rw-r--r-- | Criterion.lua | 6 | ||||
-rw-r--r-- | Module.lua | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/Criterion.lua b/Criterion.lua index 6513414..dec514c 100644 --- a/Criterion.lua +++ b/Criterion.lua @@ -49,3 +49,9 @@ end function Criterion:cuda() return self:type('torch.CudaTensor') end + +function Criterion:__call__(input, target) + self.output = self:forward(input, target) + self.gradInput = self:backward(input, target) + return self.output, self.gradInput +end @@ -22,7 +22,7 @@ function Module:updateOutput(input) end function Module:forward(input) - return self:updateOutput(input, target) + return self:updateOutput(input) end function Module:backward(input, gradOutput) @@ -212,3 +212,13 @@ function Module:getParameters() -- return new flat vector that contains all discrete parameters return flatParameters, flatGradParameters end + +function Module:__call__(input, gradOutput) + self:forward(input) + if gradOutput then + self:backward(input, gradOutput) + return self.output, self.gradInput + else + return self.output + end +end |