方法:
torch.is_complex(x)
此方法的意思是如果输入是一个复数数据类型(例如torch.complex64或者 torch.complex128)就返回True,否则返回False。
pytorch中有复数类型,也是一个tensor,但是是复数的tensor。我们来写个程序制造一个Complex,并且使用这个方法来判断它。
pytorch创建复数Tensor的方法是torch.complex(real, imag,*,out=None),参数分别为实部、虚部、输出值,此方法返回的是一个复数的Tensor,注意此方法pytorch1.7.0以后才有,之前的会报torch has no attribute 'complex’错误。如果版本不对则需要进行升级
import torch
a = torch.tensor([1, 2], dtype=torch.float64)
b = torch.tensor([3, 4], dtype=torch.float64)
z = torch.complex(a, b)
print(z)
print(z.dtype)
print(torch.is_complex(z))
输出:
由于complex中a做实部,b做虚部,所以a与b的类型必须相等,而且只能是float32或者double,也就是a与b要不同为float32要不同为double。
注意,pytorch中的complex类分为complex64与complex128,如果你输入的两个tensor都是float型也就是32位的,那么返回的就是complex64,如果使用的都是double型,也就是都是64位的,那么返回的就是complex128,因为实部和虚部都需要32或者64