我想为变量的数据类型指定两个选项。像这样的东西:
class MyDataClass:
MyData: np.ndarray | torch.float
def __init__(self, as_torch):
MyData = np.arange(1,10)
if as_torch:
MyData = torch.from_numpy(MyData)
...但这会引发错误:
TypeError: unsupported operand type(s) for |: 'type' and 'torch.dtype'
我认为可以不为 MyData 分配数据类型,但我想知道是否有更好的解决方案。 解决此错误或解决此问题的最佳实践是什么?预先感谢!
尝试过: np.ndarray | np.ndarray |火炬.张量
您需要使用 type 进行类型提示,而不是
torch.float
。如果您使用 torch.dtype
(torch.float
属于 torch.dtype
类型),它会起作用,但您可能不希望这样。当你想要一个 numpy 数组或 torch 张量时,你需要使用 torch.Tensor
(注意大写 T
),即:
MyData: np.ndarray | torch.Tensor
FWIW,
torch.tensor
是一个函数,而不是类型。所有 torch
张量都是 torch.Tensor
类型。