第三个方法
torch.is_comlpex(input)
- 前三个方法都是判断型的方法,此方法的意思是如果输入是一个复数数据类型(例如
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.float32)
b = torch.tensor([3, 4], dtype=torch.float32)
z = torch.complex(a, b)
print(z)
print(z.dytpe)
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。