8. PyTorch Tensors Explained - Neural Network Programming
Tensor是神经网络常用的数据结构,在进行应用的时候,第一行代码通常是数据的预处理操作,数据的预处理最终目的是将我们正在处理的任何数据结构转换成神经网络可以使用的。
创建一个Tensor实例
我们有Tensor的属性,有数据类型,设备和布局
对于数据类型我们可以看到类型是torch.float32
每一种类型的数据都有一个CPU和GPU版本
张量数据类型的张量运算必须相同数据类型之间的张量才可以进行。
Pytorch支持多个设备,所以我们应该指明是那个设备。index0代表第一个GPU设备,记住要使用多设备的时候,张量之间的操作必须与存在同意设备上的张量发生
下面我们举了个例子,对于这两个Tensor类型是不一样的,所以两个张量相加的时候会报错。
这个例子是说明不同设备的张量也无法进行计算
所以说对于张量来说我们要记住一个是张量的类型,另一个就是张量的设备
创建张量对象的方法,主要是四种方式
首先创建了一个数组,我们把这个数组转换成Tensor
第一种方法的小数点标明这些值是浮点数,在numpy中我们是整数
第二种方法
这里的数据类型和numpy的数据类型是一样的
第三种
结果和上面那个是一样的
第四种 也是一样的
除了第一种不一样,其余的都是一样的,我们将在下一节介绍这四种的不同和应该选哪一种最合适创建张量。
下面是没有任何数据的情况下创建张量
torch.eye()代表创建一个单位张量,或者说单位矩阵,2代表的是行数
创建一个有两个坐标轴的秩为2的张量,两者的长度都是2
创建全1张量