提交 5a3c0195 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Add local optimizer name to NavigatorOptimizer errors

上级 20b5333d
...@@ -2046,17 +2046,20 @@ class NavigatorOptimizer(GlobalOptimizer): ...@@ -2046,17 +2046,20 @@ class NavigatorOptimizer(GlobalOptimizer):
replacements = list(replacements.values()) replacements = list(replacements.values())
elif not isinstance(replacements, (tuple, list)): elif not isinstance(replacements, (tuple, list)):
raise TypeError( raise TypeError(
f"Optimizer {lopt} gave wrong type of replacement. " f"Local optimizer {lopt} gave wrong type of replacement. "
f"Expected list or tuple. Got {replacements}" f"Expected list or tuple; got {replacements}"
) )
if len(old_vars) != len(replacements): if len(old_vars) != len(replacements):
raise ValueError(f"Optimizer {lopt} gave wrong number of replacements") raise ValueError(
f"Local optimizer {lopt} gave wrong number of replacements"
)
# None in the replacement mean that this variable isn't used # None in the replacement mean that this variable isn't used
# and we want to remove it # and we want to remove it
for r, rnew in zip(old_vars, replacements): for r, rnew in zip(old_vars, replacements):
if rnew is None and len(fgraph.clients[r]) > 0: if rnew is None and len(fgraph.clients[r]) > 0:
raise ValueError( raise ValueError(
"A local optimizer tried to remove a Variable that is used" f"Local optimizer {lopt} tried to remove a variable"
f" that is being used: {r}"
) )
# If an output would be replaced by itself, no need to perform # If an output would be replaced by itself, no need to perform
# the replacement # the replacement
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论