基本数据类型

只需要知道torch.FloatTensortorch.ByteTensortorch.IntTensortorch.LongTensorGPU TensorCPU Tensor中间多一个cuda
Data type
可以用变量名.type检查类型。
Type_check
isinstance()用来对tensor进行类型检验,将两个进行对比类型一致返回TRUE
注意:type(x)是python内置用法,只会返回torch.Tensor不会返回具体类型要用x.type
x.cuda()会返回一个gpu上的引用。
cuda

不同维度tensor创建

Dim 0

用于计算Loss,输出一个标量。

1
torch.tensor(1.)

tensor(1.)
注意:1.是0维,是标量,[1.]是1维,长度为1的张量。
a.shape和a.size()作用等同,输出的torch.size([])即表示dimension为0,说明该tensor为标量

Dim 1

用于神经网络的偏置bias,或者作为神经网络线性层的输入,如MNIST数据集中图片格式转换后为tensor([784])。

1
torch.tensor([1.])

shape,size,dimension的区别:
shape:从前往后对应由外向内的维度。
size:同shape。
dim:代表张量的维度。
dim和shape的区别

Dim 2

用于神经网络带有batchsize的线性输入,如MNIST数据集中[4,784]表示有四张图片,每张图片784个像素点,第一个维度表示第几张照片,第二个维度表示照片中第几个像素点对应的数值。

Dim 3

3维的tensor尤其适合于RNN的input_batch,用于自然语言处理,加入一句话由10个单词组成,每个单词有100种可能,采用one-hot编码,则代表一句话的tensor shape为[10,100],若一次输入20句话,则tensor shape为[10,20,100]

Dim 4

主要用于CNN中输入,如[2,3,28,28]格式tensor四个维度分别表示
batchsize,channel,height,weight,例子中表示两张通道为3,高度宽度都为28个像素点的图片。灰度图通道数为1,彩色图通道数为3分别表示RGB。

dim4_for_cnn