张量是机器学习系统使用的数据结构,了解它们是您应该早期建立的一项基本技能。张量是数字数据的容器。这是我们存储将在系统中使用的信息的方式。
三个主要属性定义张量:
- 等级rank
- 它的形状shape
- 其数据类型datatype
张量的等级Rank
张量的等级rank是指张量的轴数。例子:
- 矩阵的等级是2,因为它有两个轴。
- 向量的等级为1,因为它具有单个轴。
张量的形状Shape
张量的形状描述了沿每个轴的维数。例:
- 方阵(square matrix)可具有(3,3)维度。
- 等级为3的张量可以具有(2、5、7)维度。
张量的数据类型
张量的数据类型是指其中包含的数据类型。例如,当使用Python的numpy库,以下是一些受支持的数据类型:
- float32
- float64
- uint8
- int32
- int64
在前面使用了术语“向量”和“矩阵”来指代具有特定等级(分别为1和2)的张量。我们在描述张量时也可以使用这些数学概念。
- 标量scalar
import numpy as np; |
结果:0
- 向量
import numpy as np; |
结果:1
- 矩阵
import numpy as np; |
结果:2
- 高维
import numpy as np; |
[[1,11,21,31] |
[2,12,22,32] |
[3,13,23,33]); |
结果:3
以下是一些常见的张量表示形式:
- 向量:1D-(特征feature)
- 序列Sequences:2D-(时间步长timesteps,特征)
- 图片:3D-(高度,宽度,通道)
- 视频:4D-(帧,高度,宽度,通道)
通常,机器学习算法一次处理一个数据子集(称为“批处理”。)使用一批数据时,张量的第一个轴保留用于批处理的大小(样本数)。
例如,如果您处理2D张量(矩阵),则它们中的一批将总共具有3个维: (样本,行,列)请注意,第一个轴是批次中的矩阵数。
按照相同的逻辑,可以将一批图像表示为4D张量:
- (样本,高度,宽度,通道)
- (样本,帧,高度,宽度,通道)