Tensorflow测试失败

时间:2017-06-21 05:38:39

标签: python tensorflow

我正在测试TF,当我测试添加时,我得到:

E       AssertionError: 
E       Arrays are not equal
E       
E       (mismatch 100.0%)
E        x: array(4.099999904632568, dtype=float32)
E        y: array(4.1)

如果我将测试从3.1改为3.0,它有效吗?任何建议

代码

import tensorflow as tf
import unittest

def sum_op(param1, param2):
    return tf.add(param1, param2)

with tf.Graph().as_default():
    result = sum_op(tf.constant(1.0), tf.Variable(2.0))
    with tf.Session() as sess:
        tf.global_variables_initializer().run()
        print sess.run(result)



class AddTest(tf.test.TestCase):
    def testAdd(self):
        with self.test_session() as sess:
            self.assertAllEqual(sum_op(1.0, 3.1).eval(), 4.1)


suite = unittest.TestLoader().loadTestsFromTestCase(AddTest)
unittest.TextTestRunner(verbosity=2).run(suite)

1 个答案:

答案 0 :(得分:1)

通常,使用浮点运算测试精确相等很容易出错。您可能需要阅读What Every Programmer Should Know About Floating-Point Arithmetic

在检查浮点代码时应使用容差,例如numpy的isclose function

相关问题