提交 8b008d5e authored 作者: Frederic Bastien's avatar Frederic Bastien

Speed up Canonizer.get_constant that speed up simplify_constants as it use it frequently.

上级 80edc315
...@@ -4713,12 +4713,16 @@ class Canonizer(gof.LocalOptimizer): ...@@ -4713,12 +4713,16 @@ class Canonizer(gof.LocalOptimizer):
numeric constant. If v is a plain Variable, returns None. numeric constant. If v is a plain Variable, returns None.
""" """
if isinstance(v, Variable): if isinstance(v, Constant):
try: if getattr(v.tag, 'unique_value', None) is not None:
# As the constant folding is in the canonicalize phase, data = v.tag.unique_value
# We don't need to check all the graph each time. else:
return get_scalar_constant_value(v, only_process_constants=True) data = v.data
except NotScalarConstantError: if data.ndim == 0:
return data
else:
return None
elif isinstance(v, Variable):
return None return None
else: else:
return v return v
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论