我正在尝试将numpy array
转换为PyTorch LongTensor
类型Variable
,如下所示:
import numpy as np
import torch as th
y = np.array([1., 1., 1.1478225, 1.1478225, 0.8521775, 0.8521775, 0.4434675])
yth = Variable(th.from_numpy(y)).type(torch.LongTensor)
但是我得到的结果是四舍五入的版本:
tensor([ 1, 1, 1, 1, 0, 0, 0])
如何在获取array
变量的同时保持numpy LongTensor
的精度?
预期结果应该是:
tensor([1., 1., 1.1478225, 1.1478225, 0.8521775, 0.8521775, 0.4434675])
答案 0 :(得分:0)
LongTensor
表示张量为long
/ int64
类型的张量(参见table in doc)。这样,您的float
值就会转换(即四舍五入)为整数。
要保留浮点值,请改用FloatTensor
(float32
)或DoubleTensor
(float64
)。