如何将浮点张量转换为长张量而没有舍入错误?

时间:2019-02-02 02:33:19

标签: python-3.x torch tensor

我有一个浮点张量,是通过将矩阵乘以它的逆(即单位矩阵)而得到的。当我转换为int时,它不是单位矩阵,即1.0000e00变为0。我需要一种使用舍入进行类型转换的方法。

我尝试使用.int()和.long()进行类型转换,但是它们舍入为零。具体来说:

I = tensor([[ 1.0000e+00,  1.1921e-07, -1.1921e-07],
        [-5.9605e-08,  1.0000e+00,  0.0000e+00],
        [-2.9802e-08,  0.0000e+00,  1.0000e+00]])
I = I.long()
print(I)

给予:

tensor([[0, 0, 0],
        [0, 1, 0],
        [0, 0, 0]])

应该发生的是print(I)返回

tensor([[1, 0, 0],
        [0, 1, 0],
        [0, 0, 1]])

哪一行代码会将张量更改为我想要的?只需一行。

1 个答案:

答案 0 :(得分:0)

答案是重新启动Jupyter内核,或插入python3。无论出于何种原因,此错误都是在Jupyter笔记本中发生的。