local nc
local nl = 0
repeat
+ assert(nl < #self.modules, 'Cycle detected in the graph.')
nc = 0
for nnma, node in pairs(self.node) do
for _, nnmb in pairs(node.succ) do
end
end
end
- assert(nl < #self.modules, 'Cycle detected in the graph.')
nl = nl + 1
until nc == 0
for _, nnm in pairs(self.modules) do
- assert(distance[nnm], 'Some modules are not connected to inputs')
+ assert(distance[nnm], 'Some modules are not connected to inputs.')
end
self.sorted = {}
end
function DAG:updateGradInput(input, gradOutput)
- assert(self.sorted, 'There has been a structure change before a DAG:updateGradInput')
+ assert(self.sorted, 'There has been a structure change before a DAG:updateGradInput.')
self:nestedApply(
function(nnm, go)
table.insert(self.node[pred[1]].gradInputSucc, nnm.gradInput)
elseif #pred > 1 then
assert(torch.type(nnm.gradInput) == 'table',
- 'Should have a table gradInput since it has multiple predecessors')
+ 'Should have a table gradInput since it has multiple predecessors.')
for n = 1, #pred do
table.insert(self.node[pred[n]].gradInputSucc, nnm.gradInput[n])
end
end
function DAG:accGradParameters(input, gradOutput, scale)
- assert(self.sorted, 'There has been a structure change before a DAG:accGradParameters')
+ assert(self.sorted, 'There has been a structure change before a DAG:accGradParameters.')
self:nestedApply(
function(nnm, go) self.node[nnm].gradOutput = go end,