提交 22fe5290 authored 作者: Frederic's avatar Frederic

pep8.

上级 355363a1
...@@ -13,93 +13,95 @@ from theano.tests import unittest_tools as utt ...@@ -13,93 +13,95 @@ from theano.tests import unittest_tools as utt
class T_max_and_argmax(unittest.TestCase): class T_max_and_argmax(unittest.TestCase):
def test_optimization(self): def test_optimization(self):
#If we use only the max output, we should replace this op with a faster one. #If we use only the max output, we should replace this op with
mode = theano.compile.mode.get_default_mode().including('canonicalize','fast_run') #a faster one.
mode = theano.compile.mode.get_default_mode().including(
'canonicalize', 'fast_run')
for axis in [0, 1, -1]: for axis in [0, 1, -1]:
data = numpy.asarray(numpy.random.rand(2,3),dtype=config.floatX) data = numpy.asarray(numpy.random.rand(2, 3), dtype=config.floatX)
n = tensor.matrix() n = tensor.matrix()
f = function([n], tensor.max_and_argmax(n, axis)[0], mode=mode) f = function([n], tensor.max_and_argmax(n, axis)[0], mode=mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op, CAReduce) assert isinstance(topo[0].op, CAReduce)
f = function([n], tensor.max_and_argmax(n, axis), mode=mode) f = function([n], tensor.max_and_argmax(n, axis), mode=mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op, tensor.MaxAndArgmax) assert isinstance(topo[0].op, tensor.MaxAndArgmax)
class T_min_max(unittest.TestCase): class T_min_max(unittest.TestCase):
def setUp(self): def setUp(self):
utt.seed_rng() utt.seed_rng()
self.mode = theano.compile.mode.get_default_mode().including('canonicalize','fast_run') self.mode = theano.compile.mode.get_default_mode().including(
'canonicalize', 'fast_run')
def test_optimization_max(self): def test_optimization_max(self):
data = numpy.asarray(numpy.random.rand(2,3),dtype=config.floatX) data = numpy.asarray(numpy.random.rand(2, 3), dtype=config.floatX)
n = tensor.matrix() n = tensor.matrix()
for axis in [0, 1, -1]: for axis in [0, 1, -1]:
f = function([n],tensor.max(n, axis), mode=self.mode) f = function([n], tensor.max(n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op,CAReduce) assert isinstance(topo[0].op, CAReduce)
f(data) f(data)
f = function([n], tensor.max(-n, axis), mode=self.mode)
f = function([n],tensor.max(-n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==2 assert len(topo) == 2
assert isinstance(topo[0].op, Elemwise) assert isinstance(topo[0].op, Elemwise)
assert isinstance(topo[0].op.scalar_op, scalar.Neg) assert isinstance(topo[0].op.scalar_op, scalar.Neg)
assert isinstance(topo[1].op,CAReduce) assert isinstance(topo[1].op, CAReduce)
f(data) f(data)
f = function([n],-tensor.max(n, axis), mode=self.mode) f = function([n], -tensor.max(n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==2 assert len(topo) == 2
assert isinstance(topo[0].op,CAReduce) assert isinstance(topo[0].op, CAReduce)
assert isinstance(topo[1].op, Elemwise) assert isinstance(topo[1].op, Elemwise)
assert isinstance(topo[1].op.scalar_op, scalar.Neg) assert isinstance(topo[1].op.scalar_op, scalar.Neg)
f(data) f(data)
f = function([n],-tensor.max(-n, axis), mode=self.mode) f = function([n], -tensor.max(-n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op,CAReduce)#min assert isinstance(topo[0].op, CAReduce) # min
f(data) f(data)
def test_optimization_min(self): def test_optimization_min(self):
data = numpy.asarray(numpy.random.rand(2,3),dtype=config.floatX) data = numpy.asarray(numpy.random.rand(2, 3), dtype=config.floatX)
n = tensor.matrix() n = tensor.matrix()
for axis in [0, 1, -1]: for axis in [0, 1, -1]:
f = function([n],tensor.min(n, axis), mode=self.mode) f = function([n], tensor.min(n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op,CAReduce) assert isinstance(topo[0].op, CAReduce)
f(data) f(data)
#test variant with neg to make sure we optimize correctly #test variant with neg to make sure we optimize correctly
f = function([n],tensor.min(-n, axis), mode=self.mode) f = function([n], tensor.min(-n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==2 assert len(topo) == 2
assert isinstance(topo[0].op,CAReduce)#max assert isinstance(topo[0].op, CAReduce) # max
assert isinstance(topo[1].op, Elemwise) assert isinstance(topo[1].op, Elemwise)
assert isinstance(topo[1].op.scalar_op, scalar.Neg) assert isinstance(topo[1].op.scalar_op, scalar.Neg)
f(data) f(data)
f = function([n],-tensor.min(n, axis), mode=self.mode) f = function([n], -tensor.min(n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==2 assert len(topo) == 2
assert isinstance(topo[0].op, Elemwise) assert isinstance(topo[0].op, Elemwise)
assert isinstance(topo[0].op.scalar_op, scalar.Neg) assert isinstance(topo[0].op.scalar_op, scalar.Neg)
assert isinstance(topo[1].op,CAReduce)#max assert isinstance(topo[1].op, CAReduce) # max
f(data) f(data)
f = function([n],-tensor.min(-n, axis), mode=self.mode) f = function([n], -tensor.min(-n, axis), mode=self.mode)
topo = f.maker.env.toposort() topo = f.maker.env.toposort()
assert len(topo)==1 assert len(topo) == 1
assert isinstance(topo[0].op,CAReduce)#max assert isinstance(topo[0].op, CAReduce) # max
f(data) f(data)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论