下面的代码显示了当把一个python浮点数转换为tf.train.FloatList
时,我们会丢失精度,我的理解是python和tensorflow都把它存储为float64,那么为什么会有区别呢?
import tensorflow as tf
x =2.3
lst = tf.train.FloatList(value=[x])
reloaded = lst.value[0] # 2.299999952316284
下面的代码显示了当把一个python浮点数转换为tf.train.FloatList
时,我们会丢失精度,我的理解是python和tensorflow都把它存储为float64,那么为什么会有区别呢?
import tensorflow as tf
x =2.3
lst = tf.train.FloatList(value=[x])
reloaded = lst.value[0] # 2.299999952316284
1条答案
按热度按时间2eafrhcq1#
一个
FloatList
包含float
s -例如,协议缓冲区float
,它是32位的。如果查看FloatList
documentation,您将看到value
定义为这意味着X1 M5 N1 X字段包含0个或更多个32位ProtoBufX 1 M6 N1 X值。
如果是64位浮点数,它会说
但上面没这么写。