pytorch张量的数据类型
Type check
1.a = torch.randn(2,3)
a.type()
out:‘torch.FloatTensor’
type(a)
out:torch.Tensor
isinstance(a,torch.FloatTensor)#用isinstance来检查a是否与 torch.FloatTensor类型一致
out:True
isinstance(data,torch.cuda.DoubleTensor)
out:False
data = data.cuda()
isinstance(data,torch.cuda.DoubleTensor)
out:True
Dimension 0
维度0下的输出是什么样子的
torch.tensor(1.)
out:tensor(1.)
torch.tensor(1.3)
out:tensor(1.300)
此时我们用shape来看dim=0时刻下的size
a = torch.tensor(2.2)
a.shape
out:torch.Size([])
居然是一个空的列表
len(a.shape)
out:0
a.size()
out:torch.Size([])
DIM 1
torch.tensor([1.1])
out:tensor([1.1000])
torch.tensor([1.1,2.2])
out:tensor([1.1000,2.2000])
torch.FloatTensor(1)
out:tensor([3.22393-25])
torch.FloatTensor(2)
out:tensor([3.2239e-25,4.5915e-41])
data = np.ones(2)
data
out:array([1.,1.])
torch.from_numpy(data)
tensor([1.,1.],dtype=torch.float64)
a = torch.ones(2)
a.shape
out:torch.Size([2])我很好奇为什么这里列表2了,上一个是0?我自己猜测dim=0是小括号里就一个数字,dim=1意味着有一个向量了,接下来看dim=2的例子
DIM 2
a = torch.randn(2,3)
a
out:tensor([[-0.4423,0.5949,1.1440],
[-2.0935,0.2051,1.2781]])
a.shape
out:torch.Size([2,3])为啥这里就两行三列了,联系前一个dim为1的或许知道一旦有了维度那么向量就有了表示的方法,而第一个dim=0之所以等于0是因为他不是向量(我自己的推测)
a.size(0)
out:2这里输出是2,居然是size的第一个元素,也能想到吧
a.size(1)
out:3
a.shape[1]
out:3这里的[1]应该指的是列数
DIM 3
a = torch.rand(1,2,3)
a
out:tensor([[[0.0764,0.2590,0.9816],
[0.6798,0.1568,0.7919]]])
a.shape
out:torch.Size([1,2,3])
a[0]
out:tensor([[0.0764,0.2590,0.9816],
[0.6798,0.1568,0.7919]])
list(a.shape)
out:[1,2,3]