floating-point - PyTorch 给了我一个不同的标量值
问题描述
当我使用 PyTorch 从浮点数创建张量,然后将其转换回浮点数时,它会产生不同的结果。为什么会这样,我该如何修复它以返回相同的值?
num = 0.9
float(torch.tensor(num))
输出:
0.8999999761581421
解决方案
这是一个浮点“问题”,您可以在此处阅读有关 Python 3 如何处理这些问题的更多信息。
本质上,甚至num
没有实际存储 0.9。无论如何,您的情况下的打印问题来自实际上num
是双精度并且torch.tensor
默认使用单精度的事实。如果你试试:
num = 0.9
float(torch.tensor(num, dtype=torch.float64))
你会得到0.9
。
推荐阅读
- c++ - 有人可以解释 3D 形状中的 Z 值是多少吗?
- firebase - 如何在颤振飞镖中每 20 秒显示一次插页式广告
- ibm-cloud - IBM Cloud:无法访问 Ambari 控制台
- python - Python中时间序列的真实样本外预测
- javascript - ReferenceError:foundItems 未定义
- java - 使用 JAVA 获取 WebElement 在屏幕上的位置
- python-3.x - 使用 Python 3.7 云函数并行写入 Firestore
- python - 使用scrapy删除空数据
- c++ - 是否可以向 Win32Gui 中的 WindowProcedure 发送自定义消息?
- flutter - 在 buildContext 空间中使用连字符来抖动某些情况