pytorch基本运算-PyTorch.Tensor张量数据类型
【1】引言
前序学习进程中,我们已经了解了一些PyTorch的基本运算,比如控制流梯度、分离计算、梯度运算等。
实际上这个入门显得比较急躁,因此今天暂时回过头来学一下关于Tensor的基本定义。
件提案的学习参考书籍是:廖星宇著《深度学习入门之PyTorch》
【2】张量类型测试
前序我们已经知道,Tensor模块定义了张量,但具体的,Tensor实际上有不同类型。
Torch.Float
模块 | 精度 | 类型 |
---|---|---|
Torch.FloatTensor | 32 | 浮点型 |
Torch.DoubleTensor | 64 | 浮点型 |
Torch.ShortTensor | 16 | 整型 |
Torch.IntTensor | 32 | 整型 |
Torch.LongTensor | 64 | 整型 |
我们平常定义torch.Tensor()时,如果输入的是整数,默认是64位整型LongTensor张量;如果输入的是浮点数,默认是32位浮点型torch.FloatTensor()张量。
如何在PyTorch中输出张量的具体类型,需要使用Tensor.type()函数。
请看测试代码
a0=torch.tensor([[2,3],[5,6],[7,9]])
print('a0=',a0,'Tensor Type=',a0.type())
a=torch.tensor([[2.0,3],[5,6],[7,9]])
print('a=',a,'Tensor Type=',a.type())
输出效果为:
然后是整型张量的测试代码:
b=torch.IntTensor([[2.1,3],[5,6],[7,9]])
print('b=',b,'Tensor Type=',b.type())
c=torch.ShortTensor([[2.2,3],[5,6],[7,9]])
print('c=',c,'Tensor Type=',c.type())
d=torch.LongTensor([[2.3,3],[5,6],[7,9]])
print('d=',d,'Tensor Type=',d.type())
输出效果为:
这里有一个细节,16位和32位整型数据会在输出张量的时候自动标注,也就是如果输出的整型张量没有任何标注,那这个张量就是64位整型张量。
然后是浮点型张量测试代码:
e=torch.FloatTensor([[2.4,3],[5,6],[7,9]])
print('e=',e,'Tensor Type=',e.type())
f=torch.DoubleTensor([[2.5,3],[5,6],[7,9]])
print('f=',f,'Tensor Type=',f.type())
输出效果为:
这里64位整浮点型数据在输出张量的时候自动标注,如果输出的浮点型张量没有任何标注,那这个张量就是32位浮点型张量。
至此的完整代码为:
# 引入模块
import torch# 不同类型张量测试
a0=torch.tensor([[2,3],[5,6],[7,9]])
print('a0=',a0,'Tensor Type=',a0.type())
a=torch.tensor([[2.0,3],[5,6],[7,9]])
print('a=',a,'Tensor Type=',a.type())
b=torch.IntTensor([[2.1,3],[5,6],[7,9]])
print('b=',b,'Tensor Type=',b.type())
c=torch.ShortTensor([[2.2,3],[5,6],[7,9]])
print('c=',c,'Tensor Type=',c.type())
d=torch.LongTensor([[2.3,3],[5,6],[7,9]])
print('d=',d,'Tensor Type=',d.type())
e=torch.FloatTensor([[2.4,3],[5,6],[7,9]])
print('e=',e,'Tensor Type=',e.type())
f=torch.DoubleTensor([[2.5,3],[5,6],[7,9]])
print('f=',f,'Tensor Type=',f.type())
【3】总结
学习了不同的PyTorch.Tensor张量数据类型。