提交 61b8fea3 authored 作者: Frederic's avatar Frederic

Make get_scalar_constant_value bypass DeepCopyOp and OutputGuard

Needed for the ShapeFeature in later commit.
上级 09510989
...@@ -519,7 +519,6 @@ def get_scalar_constant_value(v): ...@@ -519,7 +519,6 @@ def get_scalar_constant_value(v):
if isinstance(v, numpy.ndarray): if isinstance(v, numpy.ndarray):
return numpy_scalar(v) return numpy_scalar(v)
if isinstance(v, Constant): if isinstance(v, Constant):
if getattr(v.tag, 'unique_value', None) is not None: if getattr(v.tag, 'unique_value', None) is not None:
data = v.tag.unique_value data = v.tag.unique_value
...@@ -528,11 +527,9 @@ def get_scalar_constant_value(v): ...@@ -528,11 +527,9 @@ def get_scalar_constant_value(v):
return numpy_scalar(data) return numpy_scalar(data)
if v.owner: if v.owner:
if isinstance(v.owner.op, Alloc): if isinstance(v.owner.op, (Alloc, DimShuffle, Rebroadcast,
return get_scalar_constant_value(v.owner.inputs[0]) compile.ops.OutputGuard,
if isinstance(v.owner.op, DimShuffle): compile.DeepCopyOp)):
return get_scalar_constant_value(v.owner.inputs[0])
if isinstance(v.owner.op, Rebroadcast):
return get_scalar_constant_value(v.owner.inputs[0]) return get_scalar_constant_value(v.owner.inputs[0])
if isinstance(v.owner.op, Elemwise) and \ if isinstance(v.owner.op, Elemwise) and \
isinstance(v.owner.op.scalar_op, scal.Second): isinstance(v.owner.op.scalar_op, scal.Second):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论