tensorflow 为什么tf.train.floatList有舍入错误?

8zzbczxx  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(143)

下面的代码显示了当把一个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
2eafrhcq

2eafrhcq1#

一个FloatList包含float s -例如,协议缓冲区float,它是32位的。如果查看FloatListdocumentation,您将看到value定义为

repeated float value

这意味着X1 M5 N1 X字段包含0个或更多个32位ProtoBufX 1 M6 N1 X值。
如果是64位浮点数,它会说

repeated double value

但上面没这么写。

相关问题