【问题标题】:Print exact value of PyTorch tensor (floating point precision)打印 PyTorch 张量的准确值(浮点精度)
【发布时间】:2018-05-09 02:04:06
【问题描述】:

我正在尝试打印torch.FloatTensor,例如:

a = torch.FloatTensor(3,3)
print(a)

这样我可以得到如下值:

0.0000e+00  0.0000e+00  3.2286e-41
1.2412e-40  1.2313e+00  1.6751e-37
2.6801e-36  3.5873e-41  9.4463e+21

但我想得到更准确的值,比如小数点后 10 位:

0.1234567891+01

对于其他 python 数值对象,我可以使用:

print('{:.10f}'.format(a))

但是在张量的情况下,我得到这个错误:

TypeError: unsupported format string passed to torch.FloatTensor.__format__

如何打印更精确的张量值?

【问题讨论】:

    标签: python pytorch


    【解决方案1】:

    您可以设置精度选项:

    torch.set_printoptions(precision=10)
    

    documentation page上有更多的格式化选项,和numpy的很像。

    【讨论】:

      【解决方案2】:

      顺便说一句,这个功能取自 numpy. PyTorch 聪明的原因之一是他们从 numpy 中汲取了许多好的想法。

      但是,在 numpy 中默认精度为 8,而在 PyTorch 中默认为 4。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 2019-09-15
        • 2012-06-09
        • 1970-01-01
        • 2021-07-25
        • 2012-07-14
        • 1970-01-01
        相关资源
        最近更新 更多