提交 7b9c8bf9 authored 作者: James Bergstra's avatar James Bergstra

fixed Split.__hash__, use default_mode for verify_grad in tensor/_test_basic

上级 280b9887
...@@ -28,6 +28,13 @@ def eval_outputs(outputs, mode = default_mode): ...@@ -28,6 +28,13 @@ def eval_outputs(outputs, mode = default_mode):
return results[0] return results[0]
return results return results
_public_verify_grad = verify_grad
def verify_grad(*args, **kwargs):
assert 'mode' not in kwargs
kwargs['mode'] = default_mode
r = _public_verify_grad(*args, **kwargs)
return r
def _numpy_checker(x, y): def _numpy_checker(x, y):
""" """
...@@ -1774,14 +1781,14 @@ class T_op_cache(unittest.TestCase): ...@@ -1774,14 +1781,14 @@ class T_op_cache(unittest.TestCase):
self.failUnless(numpy.all(fn_py(a) == fn_c_or_py(a))) self.failUnless(numpy.all(fn_py(a) == fn_c_or_py(a)))
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) >= 2 and sys.argv[1] == 'OPT':
default_mode = compile.Mode(linker = 'c&py',
optimizer = 'math')
sys.argv[1:] = sys.argv[2:]
if 1: if 1:
if len(sys.argv) >= 2 and sys.argv[1] == 'OPT':
default_mode = compile.Mode(linker = 'c&py',
optimizer = 'math')
sys.argv[1:] = sys.argv[2:]
unittest.main() unittest.main()
else: else:
testcase = DotTester testcase = T_Join_and_Split
suite = unittest.TestLoader() suite = unittest.TestLoader()
suite = suite.loadTestsFromTestCase(testcase) suite = suite.loadTestsFromTestCase(testcase)
......
...@@ -1394,7 +1394,7 @@ class Split(Op): ...@@ -1394,7 +1394,7 @@ class Split(Op):
self.len_splits == other.len_splits) self.len_splits == other.len_splits)
def __hash__(self): def __hash__(self):
return 76612131345 ^ len(self.len_splits) return hash(Split) ^ self.len_splits
def make_node(self, x, axis, splits): def make_node(self, x, axis, splits):
"""WRITEME""" """WRITEME"""
...@@ -2161,7 +2161,7 @@ class numeric_grad: ...@@ -2161,7 +2161,7 @@ class numeric_grad:
return numpy.max(errs) return numpy.max(errs)
def verify_grad(testcase, op, pt, n_tests=1, rng=numpy.random, eps=1.0e-7, tol=0.0001, def verify_grad(testcase, op, pt, n_tests=1, rng=numpy.random, eps=1.0e-7, tol=0.0001,
linker='c&py'): mode=compile.Mode(optimizer=None, linker='c&py')):
""" WRITEME """ WRITEME
testcase.failUnless(analytic gradient matches finite-diff gradient) testcase.failUnless(analytic gradient matches finite-diff gradient)
...@@ -2172,9 +2172,8 @@ def verify_grad(testcase, op, pt, n_tests=1, rng=numpy.random, eps=1.0e-7, tol=0 ...@@ -2172,9 +2172,8 @@ def verify_grad(testcase, op, pt, n_tests=1, rng=numpy.random, eps=1.0e-7, tol=0
#print "PT", pt #print "PT", pt
def function(inputs, output): def function(inputs, output):
return compile.function(inputs, output, f = compile.function(inputs, output, mode=mode, accept_inplace=True)
mode=compile.Mode(optimizer = None, linker = linker), return f
accept_inplace=True)
for test_num in xrange(n_tests): for test_num in xrange(n_tests):
tensor_pt = [value(p.copy(), name='input %i'%i) for i,p in enumerate(pt)] tensor_pt = [value(p.copy(), name='input %i'%i) for i,p in enumerate(pt)]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论