RuntimeError: Could not infer dtype of complex (PyTorch暂不支持复数数据类型)

# 输入1
torch.tensor([1 + 1j])

# 报错信息
# RuntimeError: Could not infer dtype of complex

# 输入2
torch.tensor([1 + 1j], dtype=torch.complex128)

# 报错信息
# RuntimeError: Could not run 'aten::empty.memory_format' with arguments from the 'ComplexCPUTensorId' backend. 'aten::empty.memory_format' is only available for these backends: [SparseCPUTensorId, CPUTensorId, VariableTensorId, MkldnnCPUTensorId].

上面的内容是我在看官方文档时,看到有一下复数相关的api,想自己试用看看的,然后发现出现上面这些错误了,复制之后百度bing都查不到相关问题,再查看一下PyTorch支持的数据类型:
PyTorch Data Type
PyTorch中tensor数据类型只有上面9种,不包含complex,然后也没有找到有转换complex的函数,所以尝试了以下操作:

a = np.array([1 + 1j])
t = torch.from_numpy(a)

# 报错信息
# TypeError: can't convert np.ndarray of type numpy.complex128. The only supported types are: float64, float32, float16, int64, int32, int16, int8, uint8, and bool.

最后还看了下Github上的这篇文章 Are complex tensors on any plan? , 里面讲到由于使用complex number的人很少,所以复数的PyTorch实现暂时不在PyTorch的计划之中。

总结: PyTorch暂时不支持任何复数类型及操作。

附上官方文档中的陈述:
官方文档中的陈述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值