require 'nn'
require 'dagnn'
--- torch.setnumthreads(params.nbThreads)
torch.setdefaulttensortype('torch.DoubleTensor')
-torch.manualSeed(2)
+torch.manualSeed(1)
function checkGrad(model, criterion, input, target)
local params, gradParams = model:getParameters()
d = nn.CMulTable()
e = nn.CAddTable()
-model:connect(a, b)
+model:connect(a, b, c)
model:connect(b, nn.Linear(10, 15), nn.ReLU(), d)
model:connect(d, e)
-model:connect(b, c)
model:connect(c, d)
model:connect(c, nn.Mul(-1), e)
print('Error = ' .. checkGrad(model, nn.MSECriterion(), input, output))
print('Writing /tmp/graph.dot')
-model:dot('/tmp/graph.dot')
+model:saveDot('/tmp/graph.dot')