Extract tensor from string

Viewed 451

Is it possible to extract directly the tensor included in this string tensor([-1.6975e+00, 1.7556e-02, -2.4441e+00, -2.3994e+00, -6.2069e-01])? I'm looking for some tensorflow or pytorch function that can do it, like the ast.literal_eval function does for dictionaries and lists.

If not, could you provide a pythonic method, please?

I'm thinking about something like this:

tensor_list = "tensor([-1.6975e+00,  1.7556e-02, -2.4441e+00, -2.3994e+00, -6.2069e-01])"
str_list = tensor_list.replace("tensor(", "").replace(")", "")
l = ast.literal_eval(str_list)
torch.from_numpy(np.array(l))

But I'm not sure this is the best way.

1 Answers

You can use eval:

import torch.tensor as tensor

eval(tensor_list)
>>> tensor([-1.6975,  0.0176, -2.4441, -2.3994, -0.6207])
Related