- -- We update m:gradInput
- if #gradInputSucc == 1 then
- m:updateGradInput(node.input, gradInputSucc[1])
- elseif #gradInputSucc > 1 then
- local sum
- for k = 1, #succ do
- if sum then
- sum:add(succ[k].gradInput)
- else
- sum = succ[k].gradInput
+ if #gradInputSucc > 0 then
+ -- We update nnm:gradInput
+ local gi
+ if #gradInputSucc == 1 then
+ gi = gradInputSucc[1] -- we avoid a clone()
+ elseif #gradInputSucc > 1 then
+ for k = 1, #gradInputSucc do
+ if gi then
+ gi:add(gradInputSucc[k])
+ else
+ gi = gradInputSucc[k]:clone()
+ end