提交 6153565e authored 作者: Olivier Delalleau's avatar Olivier Delalleau

Workaround for optimization failure

This ensures the broadcastable pattern is not altered.
上级 8eacd6bf
...@@ -2235,8 +2235,20 @@ def local_reshape_chain(node): ...@@ -2235,8 +2235,20 @@ def local_reshape_chain(node):
return False return False
# TODO: this can permit a failing program to run by eliminating # TODO: this can permit a failing program to run by eliminating
# the the lower reshape # the lower reshape
return [node.op(node.inputs[0].owner.inputs[0], node.inputs[1])] rval = node.op(node.inputs[0].owner.inputs[0], node.inputs[1])
# It might happen that the desired output of this node has a broadcastable
# pattern that does not match that of 'rval'. This is when originally, we
# were able to figure out that one of the dimensions of the reshape is one,
# but some other transformation replaced the shape by one for which this
# cannot be guessed.
# We should try to figure out why we lost the information about this
# constant value... but in the meantime, better not apply this
# optimization.
if rval.broadcastable == node.outputs[0].broadcastable:
return [rval]
else:
return False
register_canonicalize(local_reshape_chain) register_canonicalize(local_reshape_chain)
if 0: if 0:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论