提交 2933f737 authored 作者: James Bergstra's avatar James Bergstra

Added skip_const_merge=False option to MergeOptimizer

上级 45d20c3f
...@@ -208,6 +208,8 @@ class MergeOptimizer(Optimizer): ...@@ -208,6 +208,8 @@ class MergeOptimizer(Optimizer):
The first step of merging is constant-merging, so that all clients of an int(1) for example, The first step of merging is constant-merging, so that all clients of an int(1) for example,
are transfered to a particular instance of int(1). are transfered to a particular instance of int(1).
""" """
def __init__(self, skip_const_merge=False):
self.skip_const_merge = skip_const_merge
def add_requirements(self, env): def add_requirements(self, env):
env.extend(toolbox.ReplaceValidate()) env.extend(toolbox.ReplaceValidate())
...@@ -286,6 +288,7 @@ class MergeOptimizer(Optimizer): ...@@ -286,6 +288,7 @@ class MergeOptimizer(Optimizer):
#TODO: Consider splitting this into a separate optimizer (SeqOptimizer) #TODO: Consider splitting this into a separate optimizer (SeqOptimizer)
def apply(self, env): def apply(self, env):
if not self.skip_const_merge:
self.apply_constant_merge(env) self.apply_constant_merge(env)
self.apply_node_merge(env) self.apply_node_merge(env)
...@@ -894,6 +897,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -894,6 +897,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
self.local_optimizers = local_optimizers self.local_optimizers = local_optimizers
self.max_depth = max_depth self.max_depth = max_depth
self.max_use_ratio = max_use_ratio self.max_use_ratio = max_use_ratio
assert self.max_use_ratio is not None, 'max_use_ratio has to be a number'
def apply(self, env, start_from = None): def apply(self, env, start_from = None):
if start_from is None: if start_from is None:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论