提交 6525b7d4 authored 作者: Razvan Pascanu's avatar Razvan Pascanu

Better error message when an equilibrium is maxed out

上级 5a1bfe9b
...@@ -1063,6 +1063,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1063,6 +1063,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
start_from = env.outputs start_from = env.outputs
changed = True changed = True
max_use_abort = False max_use_abort = False
opt_name = None
process_count = {} process_count = {}
while changed and not max_use_abort: while changed and not max_use_abort:
...@@ -1099,6 +1100,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1099,6 +1100,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
process_count.setdefault(lopt, 0) process_count.setdefault(lopt, 0)
if process_count[lopt] > max_use: if process_count[lopt] > max_use:
max_use_abort = True max_use_abort = True
opt_name = lopt.name
else: else:
lopt_change = self.process_node(env, node, lopt) lopt_change = self.process_node(env, node, lopt)
if lopt_change: if lopt_change:
...@@ -1110,7 +1112,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1110,7 +1112,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
self.detach_updater(env, u) self.detach_updater(env, u)
self.detach_updater(env, u) #TODO: erase this line, it's redundant at best self.detach_updater(env, u) #TODO: erase this line, it's redundant at best
if max_use_abort: if max_use_abort:
_logger.error("EquilibriumOptimizer max'ed out") _logger.error("EquilibriumOptimizer max'ed out by "+opt_name)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论