提交 a8bc1124 authored 作者: Frederic's avatar Frederic

back-port to python2.5

上级 98cc3ce8
...@@ -144,7 +144,7 @@ def remove_constants_and_unused_inputs_scan(node): ...@@ -144,7 +144,7 @@ def remove_constants_and_unused_inputs_scan(node):
nw_info['n_seqs'] = nw_n_seqs nw_info['n_seqs'] = nw_n_seqs
# DEBUG CHECK # DEBUG CHECK
nwScan = scan_op.Scan(nw_inner, op_outs, nw_info) nwScan = scan_op.Scan(nw_inner, op_outs, nw_info)
nw_outs = nwScan(*nw_outer, return_list=True) nw_outs = nwScan(*nw_outer, **dict(return_list=True))
return nw_outs return nw_outs
else: else:
return False return False
...@@ -230,7 +230,7 @@ class PushOutNonSeqScan(gof.Optimizer): ...@@ -230,7 +230,7 @@ class PushOutNonSeqScan(gof.Optimizer):
# Do not call make_node for test_value # Do not call make_node for test_value
nw_outer_node = nd.op(*outside_ins, nw_outer_node = nd.op(*outside_ins,
return_list=True)[0].owner **dict(return_list=True))[0].owner
# Step 2. Create variables for replacements # Step 2. Create variables for replacements
for idx, y in enumerate(nd.outputs): for idx, y in enumerate(nd.outputs):
...@@ -291,7 +291,8 @@ class PushOutNonSeqScan(gof.Optimizer): ...@@ -291,7 +291,8 @@ class PushOutNonSeqScan(gof.Optimizer):
nwScan = scan_op.Scan(op_ins, op_outs, op.info) nwScan = scan_op.Scan(op_ins, op_outs, op.info)
# Do not call make_node for test_value # Do not call make_node for test_value
nw_node = nwScan(*(node.inputs + nw_outer), return_list=True)[0].owner nw_node = nwScan(*(node.inputs + nw_outer),
**dict(return_list=True))[0].owner
fgraph.replace_all_validate_remove( fgraph.replace_all_validate_remove(
zip(node.outputs, nw_node.outputs), zip(node.outputs, nw_node.outputs),
...@@ -395,7 +396,8 @@ class PushOutSeqScan(gof.Optimizer): ...@@ -395,7 +396,8 @@ class PushOutSeqScan(gof.Optimizer):
'which is not allowed to move. Report ' 'which is not allowed to move. Report '
'this on theano-users list'), x) 'this on theano-users list'), x)
# Do not call make_node for test_value # Do not call make_node for test_value
nw_outer_node = nd.op(*outside_ins, return_list=True)[0].owner nw_outer_node = nd.op(*outside_ins,
**dict(return_list=True))[0].owner
# Step 2. Create variables for replacements # Step 2. Create variables for replacements
for idx, y in enumerate(nd.outputs): for idx, y in enumerate(nd.outputs):
...@@ -488,8 +490,8 @@ class PushOutSeqScan(gof.Optimizer): ...@@ -488,8 +490,8 @@ class PushOutSeqScan(gof.Optimizer):
nw_info['n_seqs'] += len(nw_inner) nw_info['n_seqs'] += len(nw_inner)
nwScan = scan_op.Scan(op_ins, op_outs, nw_info) nwScan = scan_op.Scan(op_ins, op_outs, nw_info)
# Do not call make_node for test_value # Do not call make_node for test_value
nw_node = nwScan(* (node.inputs[:1] + nw_outer + nw_node = nwScan(*(node.inputs[:1] + nw_outer + node.inputs[1:]),
node.inputs[1:]), return_list=True)[0].owner **dict(return_list=True))[0].owner
fgraph.replace_all_validate_remove( fgraph.replace_all_validate_remove(
zip(node.outputs, nw_node.outputs), zip(node.outputs, nw_node.outputs),
...@@ -580,7 +582,7 @@ class ScanInplaceOptimizer(Optimizer): ...@@ -580,7 +582,7 @@ class ScanInplaceOptimizer(Optimizer):
typeConstructor=self.typeConstructor) typeConstructor=self.typeConstructor)
# Do not call make_node for test_value # Do not call make_node for test_value
new_outs = new_op(*inputs, return_list=True) new_outs = new_op(*inputs, **dict(return_list=True))
try: try:
fgraph.replace_all_validate_remove( fgraph.replace_all_validate_remove(
zip(node.outputs, new_outs), zip(node.outputs, new_outs),
...@@ -966,7 +968,7 @@ class ScanSaveMem(gof.Optimizer): ...@@ -966,7 +968,7 @@ class ScanSaveMem(gof.Optimizer):
# Do not call make_node for test_value # Do not call make_node for test_value
new_outs = scan_op.Scan(inps, outs, info)(*node_ins, new_outs = scan_op.Scan(inps, outs, info)(*node_ins,
return_list=True) **dict(return_list=True))
old_new = [] old_new = []
# 3.7 Get replace pairs for those outputs that do not change # 3.7 Get replace pairs for those outputs that do not change
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论