提交 44b8cf56 authored 作者: Frederic's avatar Frederic

Make ScipyGer opt faster by not creating new object each time.

上级 e42d3af2
...@@ -59,15 +59,18 @@ class ScipyGer(Ger): ...@@ -59,15 +59,18 @@ class ScipyGer(Ger):
rval.lazy = False rval.lazy = False
return rval return rval
scipy_ger_no_inplace = ScipyGer(False)
scipy_ger_inplace = ScipyGer(True)
@local_optimizer([ger, ger_destructive]) @local_optimizer([ger, ger_destructive])
def use_scipy_ger(node): def use_scipy_ger(node):
if node.op == ger: if node.op == ger:
return [ScipyGer(False)(*node.inputs)] return [scipy_ger_no_inplace(*node.inputs)]
@local_optimizer([ScipyGer(False)]) @local_optimizer([scipy_ger_no_inplace])
def make_ger_destructive(node): def make_ger_destructive(node):
if node.op == ScipyGer(False): if node.op == scipy_ger_no_inplace:
return [ScipyGer(True)(*node.inputs)] return [scipy_ger_inplace(*node.inputs)]
use_scipy_blas = in2out(use_scipy_ger) use_scipy_blas = in2out(use_scipy_ger)
make_scipy_blas_destructive = in2out(make_ger_destructive) make_scipy_blas_destructive = in2out(make_ger_destructive)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论