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

Fix test since the GpuAllocEmpty change to CPU that use different GPU op

上级 4cf7afb4
...@@ -99,6 +99,8 @@ gpu_dot22 = GpuDot22() ...@@ -99,6 +99,8 @@ gpu_dot22 = GpuDot22()
class GpuDot22Scalar(GpuOp): class GpuDot22Scalar(GpuOp):
""" """
Implement dot(2d, 2d) * scalar on the gpu. Implement dot(2d, 2d) * scalar on the gpu.
:note: Not used anymore. Keep to allow unpickle of old graph.
""" """
def __str__(self): def __str__(self):
return 'GpuDot22Scalar' return 'GpuDot22Scalar'
......
...@@ -90,22 +90,32 @@ def test_dot22scalar(): ...@@ -90,22 +90,32 @@ def test_dot22scalar():
[a, b], [a, b],
tensor.dot(a, b) * numpy.asarray(4, 'float32')) tensor.dot(a, b) * numpy.asarray(4, 'float32'))
t = f.maker.fgraph.toposort() t = f.maker.fgraph.toposort()
if any([isinstance(n.op, tcn.blas.GpuDot22Scalar) for n in t]):
assert len(t) == 4, t assert len(t) == 4, t
assert isinstance(t[0].op, tcn.GpuFromHost) assert isinstance(t[0].op, tcn.GpuFromHost)
assert isinstance(t[1].op, tcn.GpuFromHost) assert isinstance(t[1].op, tcn.GpuFromHost)
assert isinstance(t[2].op, tcn.blas.GpuDot22Scalar) assert isinstance(t[2].op, tcn.blas.GpuDot22Scalar)
assert isinstance(t[3].op, tcn.HostFromGpu) assert isinstance(t[3].op, tcn.HostFromGpu)
else:
assert any([isinstance(n.op, tcn.blas.GpuGemm) for n in t])
assert any([isinstance(n.op, tcn.basic_ops.GpuAllocEmpty)
for n in t])
assert numpy.allclose(f(av, bv), f2(av, bv)) assert numpy.allclose(f(av, bv), f2(av, bv))
f = theano.function([a, b, scalar], tensor.dot(a, b) * scalar, f = theano.function([a, b, scalar], tensor.dot(a, b) * scalar,
mode=mode_with_gpu) mode=mode_with_gpu)
f2 = theano.function([a, b, scalar], tensor.dot(a, b) * scalar) f2 = theano.function([a, b, scalar], tensor.dot(a, b) * scalar)
t = f.maker.fgraph.toposort() t = f.maker.fgraph.toposort()
if any([isinstance(n.op, tcn.blas.GpuDot22Scalar) for n in t]):
assert len(t) == 4 assert len(t) == 4
assert isinstance(t[0].op, tcn.GpuFromHost) assert isinstance(t[0].op, tcn.GpuFromHost)
assert isinstance(t[1].op, tcn.GpuFromHost) assert isinstance(t[1].op, tcn.GpuFromHost)
assert isinstance(t[2].op, tcn.blas.GpuDot22Scalar) assert isinstance(t[2].op, tcn.blas.GpuDot22Scalar)
assert isinstance(t[3].op, tcn.HostFromGpu) assert isinstance(t[3].op, tcn.HostFromGpu)
else:
assert any([isinstance(n.op, tcn.blas.GpuGemm) for n in t])
assert any([isinstance(n.op, tcn.basic_ops.GpuAllocEmpty)
for n in t])
assert numpy.allclose(f(av, bv, 0.5), f2(av, bv, 0.5)) assert numpy.allclose(f(av, bv, 0.5), f2(av, bv, 0.5))
cmp((3, 4), (4, 5)) cmp((3, 4), (4, 5))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论