指定 np.ndarray 和 torch.tensor 作为 dtype 的两个选项

问题描述 投票:0回答:1

我想为变量的数据类型指定两个选项。像这样的东西:

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 |火炬.张量

python numpy class pytorch torch
1个回答
0
投票

您需要使用 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
类型。

© www.soinside.com 2019 - 2024. All rights reserved.