基本数据类型
python | PyTorch |
---|---|
Int | IntTensor of size() |
float | FloatTensor of size() |
Int array | IntTensor of size [d1,d2,…] |
Float array | FloatTensor of size [d1,d2,…] |
string | - - |
内部没有自带的表示string的方法,用one-hot-encoding。
Data type
Data type | dtype | CPU tensor | GPU tensor |
---|---|---|---|
32-bit floating point | torch.float32 or torch.float | torch.FloatTensor | torch.cuda.FloatTensor |
64-bit floating point | torch.float64 or torch.doubie | torch.DoubleTensor | torch.cuda.DoubleTensor |
16-bit floating point | torch.float16 or torch.half | torch.HalfTensor | torch.cuda.HalfTensor |
8-bit integer(unsigned) | torch.uint8 | torch.ByteTensor | torch.cuda.ByteTensor |
8-bit integer(signed) | torch.int8 | torch.CharTensor | torch.cuda.CharTensor |
16-bit integer(signed) | torch.int16 or torch.short | torch.ShortTensor | torch.cuda.ShortTensor |
32-bit integer(signed) | torch.int32 or torch.int | torch.IntTensor | torch.cuda.IntTensor |
64-bit integer(signed) | torch.int64 or torch.long | torch.LongTensor | torch.cuda.LongTensor |
data.type()
查询类型。
isinstance(data,torch.FloatTensor)
参数的合法化检验。
标量Dimension0/rank0
torch.tensor()表示标量。
例:(in为输入,out为输出显示)
in:torch.tensor(1.)
out:tensor(1.)
in:torch.tensor(1.3)
out:tensor(1.300)
data.shap
date.size()
返回类型。
len(data.shap)
检验长度,返回为0为标量。
张量(向量)Dim1/rank1
torch.tensor([])
例:
in:torch.tensor([1.1])
out:tensor([1.1000])
in:torch.tensor([1.1,2.2])
out:tensor([1.1000,2.2000])
in:torch.FloatTensor(1)#随机产生一维
out:tensor([3.2239e-25])
in:torch.FloatTensor(2)
out:tensor([3.2239e-25,4.5915e-41])
in:data=np.ones(2)#从numpy引入
data
out:array([1.,1.])
in:torch.from_numpy(data)
out:tensor([1.,1.],dtype=torch.float64)
data=torch.ones(2)
data.shape
data.size()
查询类型。
注:
dim:维数
size/shape:整个的形状
tensor:具体数据
比如:[1,3;2,4]的dim为2,size/shape为[2,2],tensor为[1,3;2,4]。
Dim2
torch.randn( , )或torch.FloatTensor( , )
in:a.torch.randn(2,3)
a
out:tensor([[-0.4423,0.5949,1.1440],
[-2.0935,0.2051,1.2781]])
in:a.shap
out:torch.Size([2,3])
in:a.size(0)#取shape的第一个元素
out:2
in:a.size(1)
out:3
in:a.shape[1]
out:3
处理图片
Dim3
randn随机正态分布,rand随即均匀分布。
torch.rand( , , )
in:a=torch.rand(1,2,3)
a
out:tensor([[[0.0764,0.2590,0.9816],
[0.6798,0.1568,0,7919]]])
in:a.shape
out:torch.Size([1,2,3])
in:a[0]
out:tensor([[0.0764,0.2590,0.9816],
[0.6798,0.1568,0.7919]])
in:list(a.shape)
out:[1,2,3]
处理文字
Dim4
CNN[b,c,h,w]
b:照片张数 c:通道 1灰度 3彩色 h:高 w:宽
in:a=torch.rand(2,3,28,28)
a
out:tensor([[[[0.0509,0.0420,0.2934,...,0.6700,0.1302,0.9558],[0.9358,0.7044,0.6030,...,0.4887,0.7318,0.2061],[0.8381,0.8006,0.0413,...,0.8347,0.7955,0.0314],
...,
...,
[0.3959,0.1904,0.4436,...,0.1279,0.8817,0.1984],[0.8796,0.7907,0.4319,...,0.1975,0.0611,0.1149],[0.3238,0.4519,0.0493,...,0.6546,0.8963,0.4967]]]])
得到具体数据大小
in:a.shape
out:torch.Size([2,3,28,28])
in:a.numel() #2*3*28*28
out:4704
in:a.dim() #返回维度
out:4
in:a=torch.tensor(1)
a.dim()
out:0
处理图片