pyTorch基本数据类型
文章目录
没有目的,就做不成任何事情;目的渺小,就做不成任何大事——狄德罗
首先比较一下python和pytorch的数据类型区别
pyhon的特点
整型Int
浮点型float
整型数组Int array
浮点型数组Float array
字符串string
pytorch的特点
IntTensor of size()
FloatTensor of size()
IntTensor of size[d1,d2…]
FloatTensor of size[d1,d2…]
怎么做pytorch类型的推断?如:
a=torch.randn(2,3)
利用随机的正态分布来初始化,即X服从均值为0,方差为1的正态分布;表示初始化一个2行3列的一个Tensor(张量)
a.type
得到‘torch.FloatTensor’;而如果使用一下打印:
type(a)
出来的结果是torch.Tensor,并不会出来什么类型;我们如果想检验一下Tensor是什么类型,可以如下:
isinstance(a,torch.FloatTensor)
True
得到的结果为True,说明a这个Tensor是FloatTensor类型的。
维度为0的标量
比如在python里边的标量,例如1.2 3.4,这种标量在pytorch里边怎么表示呢?
torch.tensor(1.)
tensor(1.)
使用torch.tensor方法,生成的是维度为0的一个张量,而[1.3]是维度为1的Tensor。那么怎么才能检查一个张量的维度?
a.shape
torch.Size([])
len(a.shape)
得到的结果为0,也就是说明a是一个维度为0的Tensor;
维度为1的向量
torch.tensor([1.1,2.2])
tensor([1.1000,2.200])
或者
torch.FlaotTensor(2)
tensor([3.224,2.353])
在这里,既给定了维度,也给定了相应的数据类型;下面的给定方式表明了随机化生成一个维度为1,长度为2的一个向量;
维度为2的Tensor
a=torch.randn(1,3)
a.shape
torch.Size([2,3])
a.size(0)
2
随机初始化一个2行3列的Tensor;如果给size(0)表示取矩阵形式的第0个元素,也就是2;同理,若取size(1),则输出结果为3
维度为3的Tensor
a=torch.rand(1,2,3)
a.shape
torch.Size([1,2,3])
注:关于shape和size的具体区别,查了一些资料,理解如下:
首先相同点:shape和size都能得到相同的结果
不同:shape是作为Tensor的属性,而size()是作为Tensor的方法
注:所说的维度是什么?比如说2行2列,3行3列,则说维度分别为2和3;