提交 86244fa4 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Don't discard the previous input to OuterSS().

上级 11ba80b9
......@@ -683,7 +683,8 @@ GpuElemwise{mul}(lr, SparseBlockOuterSS) -> SparseBlockOuterSS(..., alpha=lr)
@opt.local_optimizer([GpuElemwise])
def local_merge_blocksparse_output(node):
if (isinstance(node.op, GpuElemwise) and
(node.op.scalar_op == scalar.sub or node.scalar_op == scalar.add) and
(node.op.scalar_op == scalar.sub or
node.scalar_op == scalar.add) and
node.nin == 2):
ger = grab_ger(node.inputs[0])
W = node.inputs[1]
......@@ -692,9 +693,12 @@ GpuElemwise{mul}(lr, SparseBlockOuterSS) -> SparseBlockOuterSS(..., alpha=lr)
W = node.inputs[0]
if ger is None:
return None
alpha = get.inputs[5]
if node.op.scalar_op == scalar.sub:
alpha = -alpha
alpha = -ger.inputs[5]
W = W - ger.inputs[0]
else:
alpha = ger.inputs[5]
W = W + ger.inputs[0]
return [sparse_block_outer_ss(*([W] + ger.inputs[1:5] +
[alpha]))]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论