2017-04-04 305 views
1

當試圖Tensorflow介紹我碰到下面的代碼tensorflow FLOAT32小數精度

w=tf.Variable(.3,tf.float32) 
b=tf.Variable(-.3,tf.float32) 

來到同時打印該值它提供了以下輸出

print(sess.run(w)) 
print(sess.run(b)) 
print(sess.run([w])) 
print(sess.run([b])) 

輸出

-0.3 
-0.3 
[0.30000001] 
[-0.30000001] 

爲什麼而作爲數組打印時,它會提供額外的浮點數p recision? 有沒有關於這個話題的任何文件?

回答

1

Here是一個很好的資源來回答這個問題。解釋該網頁上的第一段:

TensorFlow不壞,它正在做浮點數學。計算機只能本地存儲整數,所以它們需要一些表示十進制數的方法。這種表示有一定程度的不準確。這就是爲什麼,往往不是.3 == .30000001。