Извлечь тензор из строки - PullRequest
1 голос
/ 09 июля 2020

Можно ли напрямую извлечь тензор, входящий в эту строку tensor([-1.6975e+00, 1.7556e-02, -2.4441e+00, -2.3994e+00, -6.2069e-01])? Я ищу какую-нибудь функцию tensorflow или pytorch, которая может это сделать, например, функция ast.literal_eval для словарей и списков.

Если нет, не могли бы вы предоставить метод pythoni c, пожалуйста?

Я думаю примерно так:

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))

Но я не уверен, что это лучший способ.

1 Ответ

1 голос
/ 09 июля 2020

Вы можете использовать eval

tensor_list = "tensor([-1.6975e+00,  1.7556e-02, -2.4441e+00, -2.3994e+00, -6.2069e-01])"

import torch.tensor as tensor

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