提交 e5348939 authored 作者: Reyhane Askari's avatar Reyhane Askari

fixed bug in testing, added canonicalize opt for FAST_COMPILE mode

上级 74551881
...@@ -1253,23 +1253,23 @@ def test_grad_useless_sum(): ...@@ -1253,23 +1253,23 @@ def test_grad_useless_sum():
This test checks whether there is a useless sum in the gradient This test checks whether there is a useless sum in the gradient
computations. computations.
""" """
mode = theano.compile.get_default_mode().including('canonicalize')
x = tensor.TensorType(theano.config.floatX, (True,))('x') x = tensor.TensorType(theano.config.floatX, (True,))('x')
l = tensor.log(1.0 - tensor.nnet.sigmoid(x))[0] l = tensor.log(1.0 - tensor.nnet.sigmoid(x))[0]
g = tensor.grad(l, x) g = tensor.grad(l, x)
nodes = theano.gof.graph.ops([x], [g]) nodes = theano.gof.graph.ops([x], [g])
f = theano.function([x], g) f = theano.function([x], g, mode=mode)
test_values = [-100, -1, 0, 1, 100] test_values = [-100, -1, 0, 1, 100]
outputs = [] outputs = []
for test_value in test_values: for test_value in test_values:
outputs.append(f(numpy.array([test_value]).astype('float32'))) outputs.append(f(numpy.array([test_value]).astype('float32')))
assert not any([isinstance(node.op, theano.tensor.elemwise.Sum) for node in nodes]) assert not any([isinstance(node.op, theano.tensor.elemwise.Sum) for node in nodes])
numpy.allclose(outputs, [[-3.72007598e-44], assert numpy.allclose(outputs, [[-3.72007598e-44],
[-0.26894142], [-0.26894142],
[-0.5], [-0.5],
[-0.73105858], [-0.73105858],
[-1.]]) [-1.]])
def test_clip_grad_int(): def test_clip_grad_int():
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论