提交 e637a632 authored 作者: Frederic's avatar Frederic

Re-add the max iteration for equilibrium optimizer

上级 32d650ca
...@@ -1422,6 +1422,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1422,6 +1422,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
changed = True changed = True
max_use_abort = False max_use_abort = False
opt_name = None opt_name = None
global_process_count = {}
max_nb_nodes = len(fgraph.apply_nodes) max_nb_nodes = len(fgraph.apply_nodes)
max_use = max_nb_nodes * self.max_use_ratio max_use = max_nb_nodes * self.max_use_ratio
...@@ -1432,6 +1433,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1432,6 +1433,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
io_toposort_timing = [] io_toposort_timing = []
nb_nodes = [] nb_nodes = []
for opt in self.global_optimizers + self.local_optimizers: for opt in self.global_optimizers + self.local_optimizers:
global_process_count.setdefault(opt, 0)
time_opts.setdefault(opt, 0) time_opts.setdefault(opt, 0)
while changed and not max_use_abort: while changed and not max_use_abort:
...@@ -1448,8 +1450,9 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1448,8 +1450,9 @@ class EquilibriumOptimizer(NavigatorOptimizer):
if fgraph.change_tracker.changed: if fgraph.change_tracker.changed:
process_count.setdefault(gopt, 0) process_count.setdefault(gopt, 0)
process_count[gopt] += 1 process_count[gopt] += 1
global_process_count[gopt] += 1
changed = True changed = True
if process_count[gopt] > max_use: if global_process_count[gopt] > max_use:
max_use_abort = True max_use_abort = True
opt_name = (getattr(gopt, "name", None) opt_name = (getattr(gopt, "name", None)
or getattr(gopt, "__name__", "")) or getattr(gopt, "__name__", ""))
...@@ -1489,8 +1492,9 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1489,8 +1492,9 @@ class EquilibriumOptimizer(NavigatorOptimizer):
if lopt_change: if lopt_change:
process_count.setdefault(lopt, 0) process_count.setdefault(lopt, 0)
process_count[lopt] += 1 process_count[lopt] += 1
global_process_count[lopt] += 1
changed = True changed = True
if process_count[lopt] > max_use: if global_process_count[lopt] > max_use:
max_use_abort = True max_use_abort = True
opt_name = (getattr(lopt, "name", None) opt_name = (getattr(lopt, "name", None)
or getattr(lopt, "__name__", "")) or getattr(lopt, "__name__", ""))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论