动手学深度学习v2(一)数据操作及数据预处理

数据操作及数据预处理

N维数组

N维数组是机器学习和神经网络的主要数据结构

数组

0-维数组叫做标量,如上图所示最简单的是1.0(一个浮点运算),可能表示一个物体的类别;

1-维数组叫做向量,如上图所示的三个数字,代表着一个特征向量,也就是样本抽象为一行数字;

2-维数组叫做矩阵,如上图所示有三行三列,可以是一个样本的特征矩阵,这就表示有3个样本,每一行表示一个样本,每一列表示样本的某特征。

数组-2

3-维数组最简单的就是一个RGB彩色图片,也是一个3维数组,有宽度(列的个数),有高度(行的个数),又因为有RGB3个通道,所以是一个3维数组;

4-维表示N个3维的数组放在一起,即一个RGB图片的批量;

5-维数组表示的是一个视频的批量,即有很多张图片,但还加上了时间的维度,所以是批量大小x时间x宽x高x通道的5-d数组

创建数组

创建数组需要:

  • 形状:例如3x4矩阵;
  • 每个元素的数据类型:例如32位浮点数;
  • 每个元素的值,例如全是0,或者随机数

正态分布和均匀分布

访问元素

访问元素

数据操作

把多个张量连结在一起

dim = 0表示在行上拼接(堆起来),dim = 1表示在列上拼接

数组拼接操作

即使形状不同,我们仍然可以通过调用 广播机制 (broadcastinng mechanism)来执行按元素操作

广播机制