1 基本类型
PyTorch的数据类型为各式各样的tensor,tensor可以理解为高维矩阵,与Numpy中的array类似。
PyTorch中的tensor包括CPU上的数据类型和GPU上的数据类型。
Torch定义了七种CPU tensor类型和八种GPU tensor类型。
通过使用type函数可以查看变量类型,即当data为tensor数据类型时,使用data.type()可以得到data的数据类型。
更多信息参考
torch.Tensor - PyTorch中文文档pytorch-cn.readthedocs.iotorch.Tensor - PyTorch 1.7.0 documentationpytorch.org2 类型转换
2.1 CPU tensor和GPU tensor之间的转换
(1)从CPU tensor到GPU tensor,使用data.cuda()。
(2)从GPU tensor到CPU tensor,使用data.cpu()。
2.2 Tensor与Numpy array之间的转换
(1)Tensor到Numpy array可以使用data.numpy(),其中data的类型为torch.Tensor。
(2)Numpy array到Tensor可以使用torch.from_numpy(data),其中data的类型为numpy.ndarray。
2.3 CPU tensor之间的转换或GPU tensor之间的转换
(1)一般只要在tensor后加long(),int(),double(),float(),byte()等函数就能将tensor进行类型转换。
例如:Torch.LongTensor转换为Torch.FloatTensor,直接使用data.float()即可。
(2)还可以使用type()函数。
当data为tensor数据类型,如果使用data.type(torch.FloatTensor)则强制转换data为torch.FloatTensor类型张量。
(3)当不知道要转换为什么数据类型,但需要求a1,a2两个张量的乘积时,可以使用a1.type_as(a2)将a1转换为a2同类型。