首页 > 解决方案 > PyTorch 给了我一个不同的标量值

问题描述

当我使用 PyTorch 从浮点数创建张量,然后将其转换回浮点数时,它会产生不同的结果。为什么会这样,我该如何修复它以返回相同的值?

num = 0.9
float(torch.tensor(num))

输出:

0.8999999761581421

标签: floating-pointpytorchtensor

解决方案


这是一个浮点“问题”,您可以在此处阅读有关 Python 3 如何处理这些问题的更多信息。

本质上,甚至num没有实际存储 0.9。无论如何,您的情况下的打印问题来自实际上num是双精度并且torch.tensor默认使用单精度的事实。如果你试试:

num = 0.9
float(torch.tensor(num, dtype=torch.float64))

你会得到0.9


推荐阅读