提交 465b124c authored 作者: Caglar's avatar Caglar

few changes suggested by fred.

上级 a341b215
......@@ -447,7 +447,7 @@ def local_gpu_dot_to_dot22(node):
return False
@local_optimizer([None])
@local_optimizer([theano.gof.Op])
def local_assert_no_cpu_op(node):
if not isinstance(node.op, GpuOp) and all([var.owner and isinstance(var.owner.op,
HostFromGpu) for var in node.inputs]) and all([var.owner and
......@@ -461,8 +461,10 @@ def local_assert_no_cpu_op(node):
pdb.set_trace()
return None
if config.assert_no_cpu_op != "ignore":
register_opt()(local_assert_no_cpu_op)
#Register the local_assert_no_cpu_op:
assert_no_cpu_op = theano.tensor.opt.in2out(local_assert_no_cpu_op, name='assert_no_cpu_op')
# 48.7 is after specialize device
theano.compile.optdb.register('assert_no_cpu_op', assert_no_cpu_op, 48.7)
@register_opt()
......
......@@ -92,17 +92,23 @@ def test_local_gpu_contiguous_gpu_contiguous():
def test_local_assert_no_cpu_op():
#opt.assert_no_cpu_op = "raise"
numpy.random.seed(1)
m = np.random.uniform(-1, 1, (10, 10)).astype("float32")
m = numpy.random.uniform(-1, 1, (10, 10)).astype("float32")
ms = theano.shared(m, name="m_shared")
z = ms**2 + 3
mode_local_assert = mode_with_gpu.including("local_assert_no_cpu_op")
mode_local_assert = mode_local_assert.excluding("local_gpu_elemwise_1")
f = theano.function([], z, mode=mode_local_assert)
topo = f.maker.fgraph.toposort()
a_op = [n for n in topo if not isinstance(n.op, cuda.GpuElemwise)]
assert len(a_op) == 3
def perform_assert_no_cpu_test(out, flag="ignore"):
mode_local_assert = mode_with_gpu.including("local_assert_no_cpu_op")
mode_local_assert = mode_local_assert.excluding("local_gpu_elemwise_1")
#If the flag is raise
try:
mode_local_assert = \
mode_local_assert.including("assert_no_cpu_op='%s'" % flag)
f = theano.function([], out, mode=mode_local_assert)
except Exception as expt:
#If the flag is ignore
def test_int_pow():
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论