[英]How to convert numpy array into LongTensor type Variable in PyTorch?
I am trying to convert numpy array
into PyTorch LongTensor
type Variable
as follows: 我正在尝试将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)
However the result I am getting is a rounded off version: 但是我得到的结果是四舍五入的版本:
tensor([ 1, 1, 1, 1, 0, 0, 0])
How can I keep the precision of numpy array
while getting LongTensor
variable? 如何获取
LongTensor
变量时保持numpy array
的精度?
Expected result should be: 预期结果应为:
tensor([1., 1., 1.1478225, 1.1478225, 0.8521775, 0.8521775, 0.4434675])
LongTensor
represents tensors with values of type long
/ int64
(cf table in doc ). LongTensor
表示具有long
/ int64
类型值的张量(参见doc中的表 )。 Your float
values are thus converted (ie rounded) to integers. 这样,您的
float
值将转换(即四舍五入)为整数。
To keep float values, use FloatTensor
( float32
) or DoubleTensor
( float64
) instead. 要保留浮点值,请改用
FloatTensor
( float32
)或DoubleTensor
( float64
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.