gpt4 book ai didi

python - 如何将其中没有的列表转换为 torch.tensor()?

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:49 24 4
gpt4 key购买 nike

例如我有一个变量 z = [1, 3, None, 5, 6]

我想这样做:torch.tensor(z)

并得到如下内容:

torch.tensor([1,3, None, 5,6], dtype=torch.float)

但是,这样的尝试会引发错误

TypeError: must be real number, not NoneType

有没有办法将这样的列表转换为 torch.tensor

我不想将此 None 值归因于其他值。 Numpy 数组能够转换这样的列表 np.array([1, 3, None, 5, 6]),但我也不希望来回转换变量。

最佳答案

这取决于你做什么。可能最好的方法是将 None 转换为 0

将事物转换为 numpy 数组,然后再转换为 Torch 张量是一个非常好的途径,因为它会将 None 转换为 np.nan。然后你可以创建 Torch 张量甚至持有 np.nan

import torch
import numpy as np

a = [1,3, None, 5,6]
b = np.array(a,dtype=float) # you will have np.nan from None
print(b) #[ 1. 3. nan 5. 6.]
np.nan_to_num(b, copy=False)
print(b) #[1. 3. 0. 5. 6.]
torch.tensor(b, dtype=torch.float) #tensor([1., 3., 0., 5., 6.])

也可以在 np.nan_to_num 中尝试 copy=True你会在你的张量中得到 nan 而不是 0。

关于python - 如何将其中没有的列表转换为 torch.tensor()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56455944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com