提交 ba15e178 authored 作者: Samira Shabanian's avatar Samira Shabanian

fast_compile_mode added

上级 dcc47b47
...@@ -3577,7 +3577,7 @@ def local_join_make_vector(node): ...@@ -3577,7 +3577,7 @@ def local_join_make_vector(node):
################# #################
# speed/memory # # speed/memory #
################# #################
@register_canonicalize
@register_specialize @register_specialize
@gof.local_optimizer([T.elemwise.Sum]) @gof.local_optimizer([T.elemwise.Sum])
def local_sumsqr2dot(node): def local_sumsqr2dot(node):
......
...@@ -6178,17 +6178,19 @@ def test_local_sumsqr2dot(): ...@@ -6178,17 +6178,19 @@ def test_local_sumsqr2dot():
W = matrix('W') W = matrix('W')
y = T.sqr( W.dimshuffle('x',0,1) * G.dimshuffle(0,'x',1) ).sum(axis=(1,2)) y = T.sqr( W.dimshuffle('x',0,1) * G.dimshuffle(0,'x',1) ).sum(axis=(1,2))
MODE = theano.compile.get_default_mode().including('local_sumsqr2dot')
f = function([W, G], y) f = function([W, G], y, mode=MODE)
w_val = numpy.random.rand(4, 3).astype(config.floatX) w_val = numpy.random.rand(4, 3).astype(config.floatX)
g_val = numpy.random.rand(5, 3).astype(config.floatX) g_val = numpy.random.rand(5, 3).astype(config.floatX)
f_val = f(w_val, g_val) f_val = f(w_val, g_val)
f_test = function([W,G], T.dot(T.sqr(G), T.sqr(W).sum(axis=0))) f_test = function([W,G], T.dot(T.sqr(G), T.sqr(W).sum(axis=0)), mode=MODE)
assert numpy.allclose(f_val, f_test(w_val, g_val)) assert numpy.allclose(f_val, f_test(w_val, g_val))
assert any(isinstance(n.op, theano.tensor.basic.Dot) for n in f.maker.fgraph.toposort()) assert any(isinstance(n.op, (tensor.basic.Dot, tensor.blas.Gemv, tensor.blas_c.CGemv))
for n in f.maker.fgraph.toposort())
def test_local_expm1(): def test_local_expm1():
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论