【问题标题】:PyTorch is giving me a different value for a scalarPyTorch 给了我一个不同的标量值
【发布时间】:2021-03-10 15:22:01
【问题描述】:

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

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

输出:

0.8999999761581421

【问题讨论】:

    标签: floating-point pytorch tensor


    【解决方案1】:

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

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

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

    你会得到0.9。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      相关资源
      最近更新 更多