提交 2a0c1926 authored 作者: Frederic Bastien's avatar Frederic Bastien

Allow to easy toggle the extra infer_shape in the code.

上级 11b755f5
...@@ -1603,24 +1603,31 @@ class Scan(PureOp): ...@@ -1603,24 +1603,31 @@ class Scan(PureOp):
# of iterations. # of iterations.
# sequences # sequences
seqs_shape = [x[1:] for x in input_shapes[1:1 + self.n_seqs]] seqs_shape = [x[1:] for x in input_shapes[1:1 + self.n_seqs]]
# inner_seqs = self.inputs[:self.n_seqs] # We disable extra infer_shape for now. See gh-3765.
# outer_seqs = node.inputs[1:1 + self.n_seqs] extra_infer_shape = False
# for in_s, out_s in izip(inner_seqs, outer_seqs):
# out_equivalent[in_s] = out_s[0] if extra_infer_shape:
inner_seqs = self.inputs[:self.n_seqs]
# mit_mot, mit_sot, sit_sot outer_seqs = node.inputs[1:1 + self.n_seqs]
# outer_inp_idx = 1 + self.n_seqs for in_s, out_s in izip(inner_seqs, outer_seqs):
# inner_inp_idx = self.n_seqs out_equivalent[in_s] = out_s[0]
# mit_mot, mit_sot, sit_sot
outer_inp_idx = 1 + self.n_seqs
inner_inp_idx = self.n_seqs
else:
outer_inp_idx = 0
n_outs = self.n_mit_mot + self.n_mit_sot + self.n_sit_sot n_outs = self.n_mit_mot + self.n_mit_sot + self.n_sit_sot
outs_shape = [] outs_shape = []
for idx in xrange(n_outs): for idx in xrange(n_outs):
# mintap = abs(min(self.tap_array[idx])) mintap = abs(min(self.tap_array[idx]))
for k in self.tap_array[idx]: for k in self.tap_array[idx]:
outs_shape += [input_shapes[idx + self.n_seqs + 1][1:]] outs_shape += [input_shapes[idx + self.n_seqs + 1][1:]]
# corresponding_tap = node.inputs[outer_inp_idx][mintap + k] if extra_infer_shape:
# out_equivalent[self.inputs[inner_inp_idx]] = corresponding_tap corresponding_tap = node.inputs[outer_inp_idx][mintap + k]
# inner_inp_idx += 1 out_equivalent[self.inputs[inner_inp_idx]] = corresponding_tap
# outer_inp_idx += 1 inner_inp_idx += 1
outer_inp_idx += 1
# shared_outs # shared_outs
offset = 1 + self.n_seqs + n_outs offset = 1 + self.n_seqs + n_outs
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论