value1和value 2是一个数组,其值彼此接近 这将导致临时具有非常高的十进制值
temp = tf.sub(value1,value2)
但是,当我尝试打印temp out时,由于数组中的高十进制值,它包含0.0值的数组。
如何保持所有变量的精度?
答案 0 :(得分:1)
您可以在应用value1
之前设置value2
和tf.sub
的类型来执行此操作。例如:
value1=tf.constant(5.0000000001,dtype=tf.float64)
value2=tf.constant(5.0000000002,dtype=tf.float64)
s=tf.sub(value1,value2)
sess=tf.InteractiveSession()
s.eval()
这会打印-1.000000082740371e-10
数组相同:
value1=tf.constant([5.0000000001,2.0001],dtype=tf.float64)
value2=tf.constant([5.0000000002,2.000],dtype=tf.float64)
s=tf.sub(value1,value2)
sess=tf.InteractiveSession()
s.eval()
这会打印array([ -1.00000008e-10, 1.00000000e-04])