跳到主内容
快讯直播
AI智模界
AI 词典

张量不是玄学,它就是多维数组

一句话定义。 张量(Tensor)就是多维数组:一个把一堆数字按固定行列(以及更高维度)排列起来的容器。模型里的输入、权重、中间激活,全都是它。

从零维数到四维。

  • 0 维:一个数,叫标量(scalar),比如学习率 0.001,形状记作 ()。
  • 1 维:一排数,叫向量(vector),比如一个词的词向量,形状 (768,)。
  • 2 维:一张表格,叫矩阵(matrix),比如一层线性层的权重,形状 (768, 512)。
  • 3 维:一摞表格,比如一张彩色图片 (高, 宽, 3),最后一维是 RGB 三个通道。
  • 4 维:一摞图片,也就是一个批次(batch),(batch, 高, 宽, 3)。

往上还能继续套,语音、视频、多模态数据都是这么一层层加维度的。

打个生活化的比方。 张量像装货的容器:标量是一个格子,向量是一排格子,矩阵是一层货架,三维是一整面货架墙,再加一维就是“第几号仓库”。而形状(shape)就是贴在箱子外面的规格标签——“24 瓶装”。你要是把 24 瓶装的箱子往 12 瓶的槽里塞,塞不进去,程序就报错。所谓“形状对不上”(shape mismatch),就是这件事。

和相邻概念的区别。

概念是什么常见于
矩阵 matrix二维数组,张量的一个特例线性代数教材、表格数据
ndarrayNumPy 的多维数组数据预处理、科学计算
Tensor多维数组,通常还带自动求导和 GPU 加速深度学习框架

另外两点容易混淆:数学和物理里的“张量”指的是坐标变换下按特定规则变化的量,深度学习只是借了这个名字,日常语境里当多维数组理解就够了;框架里的 Tensor 和 NumPy 的 ndarray 在概念上几乎一样,额外能力具体支持到什么程度,以官方文档为准。

为什么值得在意。 实际工作里,模型的报错和 bug 十有八九出在形状上:少了一个维度、多了一个维度、批次维和特征维写反了。养成一个习惯:写每一层时先想清楚“输入什么形状、输出什么形状”,出错时先打印 shape 再看别的,往往比读十行代码都快。还有广播(broadcasting)机制,能让形状不同的张量也参与运算,方便是方便,但也容易制造“不报错、结果却是错的”的隐蔽 bug。

对不写代码的同事来说,记住一句就够:模型内部没有玄学,绝大多数运算就是多维数组之间的乘法和加法。理解了这一点,“AI 到底在算什么”就不再神秘了。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。