【问题标题】:Extract tensor from string从字符串中提取张量
【发布时间】:2020-10-30 00:33:06
【问题描述】:

是否可以直接提取此字符串tensor([-1.6975e+00, 1.7556e-02, -2.4441e+00, -2.3994e+00, -6.2069e-01])中包含的张量?我正在寻找一些可以做到这一点的 tensorflowpytorch 函数,就像用于字典和列表的 ast.literal_eval 函数一样。

如果没有,请您提供一个pythonic方法吗?

我正在考虑这样的事情:

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

但我不确定这是不是最好的方法。

【问题讨论】:

    标签: string pytorch tensor


    【解决方案1】:

    你可以使用eval:

    import torch.tensor as tensor
    
    eval(tensor_list)
    >>> tensor([-1.6975,  0.0176, -2.4441, -2.3994, -0.6207])
    

    【讨论】:

    • eval 函数是否识别字符串中的张量?这太棒了!
    • eval 将字符串作为 python 代码运行。我们在 (import torch.tensor as tensor) 之前添加了 tensor 的别名,所以它起作用了。
    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2016-08-27
    相关资源
    最近更新 更多