提交 6c599046 authored 作者: Olivier Delalleau's avatar Olivier Delalleau

Merge pull request #238 from nouiz/fix_test

Fix test
...@@ -281,29 +281,30 @@ def test_trace(): ...@@ -281,29 +281,30 @@ def test_trace():
ok = True ok = True
assert ok assert ok
def test_spectral_radius_bound(): def test_spectral_radius_bound():
tol = 10**(-6) tol = 10 ** (-6)
rng = numpy.random.RandomState(utt.fetch_seed()) rng = numpy.random.RandomState(utt.fetch_seed())
x = theano.tensor.matrix() x = theano.tensor.matrix()
radius_bound = spectral_radius_bound(x, 5) radius_bound = spectral_radius_bound(x, 5)
f = theano.function([x], radius_bound) f = theano.function([x], radius_bound)
shp = (3, 3) shp = (3, 4)
m = rng.rand(*shp).astype(config.floatX) m = rng.rand(*shp).astype(config.floatX)
m = numpy.cov(m) m = numpy.cov(m).astype(config.floatX)
radius_bound_theano = f(m) radius_bound_theano = f(m)
# test the approximation # test the approximation
mm = m mm = m
for i in range(5): for i in range(5):
mm = numpy.dot(mm, mm) mm = numpy.dot(mm, mm)
radius_bound_numpy = numpy.trace(mm)**(2**(-5)) radius_bound_numpy = numpy.trace(mm) ** (2 ** (-5))
assert abs(radius_bound_numpy - radius_bound_theano) < tol assert abs(radius_bound_numpy - radius_bound_theano) < tol
# test the bound # test the bound
eigen_val = numpy.linalg.eig(m) eigen_val = numpy.linalg.eig(m)
assert (eigen_val[0].max() - radius_bound_theano) < tol assert (eigen_val[0].max() - radius_bound_theano) < tol
# test type errors # test type errors
xx = theano.tensor.vector() xx = theano.tensor.vector()
ok = False ok = False
...@@ -318,7 +319,7 @@ def test_spectral_radius_bound(): ...@@ -318,7 +319,7 @@ def test_spectral_radius_bound():
except TypeError: except TypeError:
ok = True ok = True
assert ok assert ok
# test value error # test value error
ok = False ok = False
try: try:
......
...@@ -2816,7 +2816,7 @@ class T_Join_and_Split(unittest.TestCase): ...@@ -2816,7 +2816,7 @@ class T_Join_and_Split(unittest.TestCase):
def test_roll(self): def test_roll(self):
# Test simple 1D example # Test simple 1D example
a = self.shared(numpy.array([1, 2, 3, 4, 5, 6])) a = self.shared(numpy.array([1, 2, 3, 4, 5, 6], dtype=self.floatX))
b = roll(a, 2) b = roll(a, 2)
want = numpy.array([5, 6, 1, 2, 3, 4]) want = numpy.array([5, 6, 1, 2, 3, 4])
out = theano.function([], b)() out = theano.function([], b)()
...@@ -2831,7 +2831,7 @@ class T_Join_and_Split(unittest.TestCase): ...@@ -2831,7 +2831,7 @@ class T_Join_and_Split(unittest.TestCase):
assert (out == want).all() assert (out == want).all()
# Test 2D example - ensure that behavior matches numpy.roll behavior # Test 2D example - ensure that behavior matches numpy.roll behavior
a = self.shared(numpy.arange(21).reshape((3, 7))) a = self.shared(numpy.arange(21).reshape((3, 7)).astype(self.floatX))
b = roll(a, -2, 1) b = roll(a, -2, 1)
want = numpy.roll(a.get_value(borrow=True), -2, 1) want = numpy.roll(a.get_value(borrow=True), -2, 1)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论