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

Fixed some tests with compute_test_value = ignore

上级 bd3cac42
...@@ -405,11 +405,12 @@ class PureOp(object): ...@@ -405,11 +405,12 @@ class PureOp(object):
if run_perform: if run_perform:
# Original values should not be destroyed: # Original values should not be destroyed:
# copy the values of the inputs in destroy_map # copy the values of the inputs in destroy_map
destroyed_inputs = [] destroyed_inputs_idx = set()
if getattr(node.op, 'destroy_map', None): if getattr(node.op, 'destroy_map', None):
for i_pos_list in node.op.destroy_map.itervalues(): for i_pos_list in node.op.destroy_map.itervalues():
destroyed_inputs_idx.extend(node.inputs[i_pos_list]) destroyed_inputs_idx.update(i_pos_list)
for inp in destroyed_inputs: for inp_idx in destroyed_inputs_idx:
inp = node.inputs[inp_idx]
storage_map[inp] = [storage_map[inp][0].copy()] storage_map[inp] = [storage_map[inp][0].copy()]
# Prepare storage_map and compute_map for the outputs # Prepare storage_map and compute_map for the outputs
......
...@@ -340,7 +340,12 @@ class TestMergeOptimizer: ...@@ -340,7 +340,12 @@ class TestMergeOptimizer:
x = MyVariable('x') x = MyVariable('x')
y = Constant(MyType(), 2, name = 'y') y = Constant(MyType(), 2, name = 'y')
z = Constant(MyType(), 2, name = 'z') z = Constant(MyType(), 2, name = 'z')
e1 = op1(y, z) ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
e1 = op1(y, z)
finally:
config.compute_test_value = ctv_backup
g = Env([x, y, z], [e1]) g = Env([x, y, z], [e1])
MergeOptimizer().optimize(g) MergeOptimizer().optimize(g)
strg = str(g) strg = str(g)
......
...@@ -1965,7 +1965,12 @@ class T_subtensor(unittest.TestCase): ...@@ -1965,7 +1965,12 @@ class T_subtensor(unittest.TestCase):
def test1_err_bounds(self): def test1_err_bounds(self):
n = self.shared(numpy.ones(3, dtype=self.dtype)) n = self.shared(numpy.ones(3, dtype=self.dtype))
t = n[7] ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
t = n[7]
finally:
config.compute_test_value = ctv_backup
self.assertTrue(isinstance(t.owner.op, Subtensor)) self.assertTrue(isinstance(t.owner.op, Subtensor))
# Silence expected error messages # Silence expected error messages
_logger = logging.getLogger('theano.gof.opt') _logger = logging.getLogger('theano.gof.opt')
...@@ -2081,21 +2086,26 @@ class T_subtensor(unittest.TestCase): ...@@ -2081,21 +2086,26 @@ class T_subtensor(unittest.TestCase):
def test2_err_bounds0(self): def test2_err_bounds0(self):
n = self.shared(numpy.ones((2,3), dtype=self.dtype)*5) n = self.shared(numpy.ones((2,3), dtype=self.dtype)*5)
for idx in [(0,4),(0,-4)]: ctv_backup = config.compute_test_value
t = n[idx] config.compute_test_value = 'off'
self.assertTrue(isinstance(t.owner.op, Subtensor)) try:
# Silence expected warnings for idx in [(0,4),(0,-4)]:
_logger = logging.getLogger('theano.gof.opt') t = n[idx]
oldlevel = _logger.level self.assertTrue(isinstance(t.owner.op, Subtensor))
_logger.setLevel(logging.CRITICAL) # Silence expected warnings
try: _logger = logging.getLogger('theano.gof.opt')
oldlevel = _logger.level
_logger.setLevel(logging.CRITICAL)
try: try:
tval = self.eval_output_and_check([t]) try:
assert 0 tval = self.eval_output_and_check([t])
except IndexError, e: assert 0
pass except IndexError, e:
finally: pass
_logger.setLevel(oldlevel) finally:
_logger.setLevel(oldlevel)
finally:
config.compute_test_value = ctv_backup
def test2_err_bounds1(self): def test2_err_bounds1(self):
n = self.shared((numpy.ones((2,3), dtype=self.dtype)*5)) n = self.shared((numpy.ones((2,3), dtype=self.dtype)*5))
...@@ -3434,7 +3444,12 @@ class t_dot(unittest.TestCase): ...@@ -3434,7 +3444,12 @@ class t_dot(unittest.TestCase):
#def test_dot_3d_3d(self): self.cmp_dot(self.rand(4,5,6), self.rand(8,6,7)) #def test_dot_3d_3d(self): self.cmp_dot(self.rand(4,5,6), self.rand(8,6,7))
def not_aligned(self, x, y): def not_aligned(self, x, y):
z = dot(x,y) ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
z = dot(x,y)
finally:
config.compute_test_value = ctv_backup
# constant folding will complain to _logger that things are not aligned # constant folding will complain to _logger that things are not aligned
# this is normal, testers are not interested in seeing that output. # this is normal, testers are not interested in seeing that output.
_logger = logging.getLogger('theano.gof.opt') _logger = logging.getLogger('theano.gof.opt')
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论