user10735026
user10735026

Reputation: 25

How to convert numpy array(float data) to torch tensor?

test = ['0.01171875', '0.01757812', '0.02929688']  
test = np.array(test).astype(float)   
print(test)  
->[0.01171875 0.01757812 0.02929688]


test_torch = torch.from_numpy(test)  
test_torch  
->tensor([0.0117, 0.0176, 0.0293], dtype=torch.float64)

It looks like from_numpy() loses some precision there... If I want to convert this float data exactly the same, what kind of functions do I use?

Upvotes: 2

Views: 13944

Answers (1)

Ivan
Ivan

Reputation: 40768

The data precision is the same, it's just that the format used by PyTorch to print the values is different, it will round the floats down:

>>> test_torch = torch.from_numpy(test)
>>> test_torch
tensor([0.0117, 0.0176, 0.0293], dtype=torch.float64)

You can check that it matches your original input by converting to a list with tolist:

>>> test_torch.tolist()
[0.01171875, 0.01757812, 0.02929688]

Upvotes: 5

Related Questions