提交 a6cf20f0 authored 作者: Frederic Bastien's avatar Frederic Bastien

In ShapeFeature, when setting the shape, verify we set a shape with the good number of dimensions.

上级 9d4393f5
...@@ -785,6 +785,11 @@ class ShapeFeature(object): ...@@ -785,6 +785,11 @@ class ShapeFeature(object):
if s is None: if s is None:
self.shape_of[r] = s self.shape_of[r] = s
else: else:
if r.ndim != len(s):
raise ShapeError("Something infered a shape with %d dimensions"
" for a variable with %d dimensions." % (
len(s), r.ndim))
shape_vars = [self.unpack(s_i) for s_i in s] shape_vars = [self.unpack(s_i) for s_i in s]
self.shape_of[r] = tuple(shape_vars) self.shape_of[r] = tuple(shape_vars)
for sv in shape_vars: for sv in shape_vars:
...@@ -902,6 +907,8 @@ class ShapeFeature(object): ...@@ -902,6 +907,8 @@ class ShapeFeature(object):
o_shapes = shape_infer(node, o_shapes = shape_infer(node,
[self.shape_of[r] for r in node.inputs]) [self.shape_of[r] for r in node.inputs])
except ShapeError: except ShapeError:
if config.on_shape_error == "raise":
raise
o_shapes = self.default_infer_shape(node, [self.shape_of[r] for o_shapes = self.default_infer_shape(node, [self.shape_of[r] for
r in node.inputs]) r in node.inputs])
except NotImplementedError, e: except NotImplementedError, e:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论