提交 b7bcca16 authored 作者: Olivier Delalleau's avatar Olivier Delalleau

PEP8

上级 06962b6f
...@@ -166,35 +166,38 @@ def test_print_op(): ...@@ -166,35 +166,38 @@ def test_print_op():
assert topo[3].op == cuda.host_from_gpu assert topo[3].op == cuda.host_from_gpu
f(numpy.random.random((5,5)).astype('float32')) f(numpy.random.random((5,5)).astype('float32'))
def test_huge_elemwise_fusion(): def test_huge_elemwise_fusion():
""" Test the the GpuElemwise fusion work correctly """ Test the the GpuElemwise fusion work correctly
We check that we fuse one node with part of its input We check that we fuse one node with part of its input
in case their is too many inputs and that would make it bust the 256 in case their is too many inputs and that would make it bust the 256
bytes limits. bytes limits.
""" """
shape = (2,3,4,5,6) shape = (2, 3, 4, 5, 6)
ttype = tensor.tensor(dtype='float32',broadcastable=(False,)*len(shape)) ttype = tensor.tensor(dtype='float32', broadcastable=(False,) * len(shape))
vars = [tensor.tanh(ttype) for x in range(7)] vars = [tensor.tanh(ttype) for x in range(7)]
f = pfunc(vars, [vars[0]-vars[1]-vars[2]-vars[3]-vars[4]-vars[5]-vars[6]], mode=mode_with_gpu) f = pfunc(vars, [vars[0] - vars[1] - vars[2] - vars[3] - vars[4] -
vars[5] - vars[6]], mode=mode_with_gpu)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
#theano.printing.debugprint(f) #theano.printing.debugprint(f)
#for i, node in enumerate(topo): #for i, node in enumerate(topo):
# print >> sys.stdout, i, node # print >> sys.stdout, i, node
assert len(topo)==10 assert len(topo) == 10
assert sum([isinstance(node.op, cuda.GpuElemwise) for node in topo])==2 assert sum([isinstance(node.op, cuda.GpuElemwise) for node in topo]) == 2
assert isinstance(topo[7].op.scalar_op,theano.scalar.basic.Sub) assert isinstance(topo[7].op.scalar_op, theano.scalar.basic.Sub)
assert isinstance(topo[8].op.scalar_op,theano.scalar.basic.Composite) assert isinstance(topo[8].op.scalar_op, theano.scalar.basic.Composite)
#let debugmode catch errors #let debugmode catch errors
gen = lambda : theano._asarray(numpy.random.rand(*shape), dtype='float32') gen = lambda: theano._asarray(numpy.random.rand(*shape), dtype='float32')
f(gen(),gen(),gen(),gen(),gen(),gen(),gen()) f(gen(), gen(), gen(), gen(), gen(), gen(), gen())
# Test the case where we can't put the computation on the gpu! their is too many # Test the case where we can't put the computation on the gpu! their is too
# dimensions to the input to have 2 inputs to the op! # many dimensions to the input to have 2 inputs to the op!
shape = (1,2,3,4,5,6,7,2,2,3,2,1,2,2,2,) shape = (1, 2, 3, 4, 5, 6, 7, 2, 2, 3, 2, 1, 2, 2, 2,)
ttype = tensor.tensor(dtype='float32',broadcastable=(False,)*len(shape)) ttype = tensor.tensor(dtype='float32', broadcastable=(False,) * len(shape))
vars = [tensor.tanh(ttype) for x in range(7)] vars = [tensor.tanh(ttype) for x in range(7)]
f = pfunc(vars, [vars[0]-vars[1]-vars[2]-vars[3]-vars[4]-vars[5]-vars[6]], mode=mode_with_gpu) f = pfunc(vars, [vars[0] - vars[1] - vars[2] - vars[3] - vars[4] -
vars[5] - vars[6]], mode=mode_with_gpu)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
#theano.printing.debugprint(f) #theano.printing.debugprint(f)
assert len(topo) == 1 assert len(topo) == 1
...@@ -279,18 +282,20 @@ def test_local_gpu_elemwise_0(): ...@@ -279,18 +282,20 @@ def test_local_gpu_elemwise_0():
def test_elemwise_fusion(): def test_elemwise_fusion():
""" Test the the GpuElemwise fusion work correctly""" """ Test the the GpuElemwise fusion work correctly"""
shape = (3,4) shape = (3, 4)
a = cuda.shared_constructor(theano._asarray(numpy.random.rand(*shape), dtype='float32'), 'a') a = cuda.shared_constructor(theano._asarray(numpy.random.rand(*shape),
dtype='float32'), 'a')
b = tensor.fmatrix() b = tensor.fmatrix()
c = tensor.fmatrix() c = tensor.fmatrix()
f = pfunc([b,c], [a+b+c], mode=mode_with_gpu) f = pfunc([b, c], [a + b + c], mode=mode_with_gpu)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
for i, node in enumerate(topo): for i, node in enumerate(topo):
print >> sys.stdout, i, node print >> sys.stdout, i, node
assert len(topo)==4 assert len(topo) == 4
assert isinstance(topo[2].op.scalar_op,theano.scalar.basic.Composite) assert isinstance(topo[2].op.scalar_op, theano.scalar.basic.Composite)
#let debugmode catch errors #let debugmode catch errors
f(theano._asarray(numpy.random.rand(*shape), dtype='float32'), theano._asarray(numpy.random.rand(*shape), dtype='float32')) f(theano._asarray(numpy.random.rand(*shape), dtype='float32'),
theano._asarray(numpy.random.rand(*shape), dtype='float32'))
class test_local_gpu_tensordot(unittest.TestCase): class test_local_gpu_tensordot(unittest.TestCase):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论