一、什么是张量tensor?
张量是一种特殊的数据结构,与数组和矩阵非常相似。类似于Numpy 的ndarray。 在 PyTorch 中,我们使用张量对模型的输入和输出以及模型的参数进行编码。 张量都可以通过Numpy来定义、操作,通常存储在Nunpy数组,所以这就需要我们把数据转换为Numpy数组,目的就是把所有的输入数据转变为一个统一的标准,以便能够容易的处理。
张量是根据一共具有多少坐标轴来定义。比如可以把二维张量看作为一个带有行和列的数字网格。这个行和列表示两个坐标轴,一个矩阵就是二维张量,矩阵的每一行或每一列,都可以视为一维张量(向量)。如果把一系列的二维张量存储在列表中,这就形成了三维张量。你也可以把三维张量视为一个有长宽高立方体,张量能够被转换和操作,使列变为行或者行变为列。
维度是指在一个数据轴上的许多点,也就是样本的个数或者特征的个数。
张量的每一个数据轴,统称为阶。因此说一阶(1D)向量,二阶向量,三阶向量,而不是说维。
0D张量/标量 标量是一个数字
1D张量/向量 称为“向量”。只有一个坐标轴。 可以把向量视为一个单列的数字。
2D张量 2维张量称为矩阵,也就是有两个坐标轴的张量。
3D张量 公用数据存储在张量 字符串文本,视频, 彩色图片(RGB),三维张量有三个坐标轴