+function DAG:accGradParameters(input, gradOutput, scale)
+ scale = scale or 1
+
+ self:putInOrder()
+
+ self:nestedApply(
+ function(nnm, go) nnm:updateGradInput(self.node[nnm].input, go) end,
+ self.outputModules, gradOutput
+ )
+
+ self:nestedApply(
+ function(nnm, i) self.node[nnm].input = i end,
+ self.inputModules, input
+ )
+
+ for k = #self.sorted, 1, -1 do
+ local nnm = self.sorted[k]
+ local node = self.node[nnm]
+ nnm:accGradParameters(node.input, self:computeGradInput(node.gradInputSucc), scale)
+ end
+end