LESSON 06 · 卷I 基础数学

什么是张量:数据的形状

一个词、一句话、一批句子:数据越装越多,怎样读懂它的每一个轴?

第 1 站

一句话装得下,一批句子呢?

前面几课,向量帮我们装一条信息,矩阵帮我们装很多条信息。现在你要给语言模型送两句话,每句话先简化为 3 个词,每个词用 2 个数字表示。

一句话是一张 3×2 的表。两句话可以拼成 6×2,可这样有个麻烦:哪三行属于第一句话,哪三行属于第二句话?如果靠人记住分界,句子一多就很容易弄乱。

不丢掉「这是第几句话」的信息,你会怎样打包?
第 2 站

张量:多维数组,不是更长的向量

在这套 AI 教程里,张量(tensor)指按多个轴组织的数值数组。一个数字是标量;一条有顺序的数字是向量;按两个轴组织的是矩阵;更多轴继续沿用同一个思想。

对象与形状
对象轴的数量例子
标量0一个损失值,形状 []
向量1一个词,形状 [2]
矩阵2一句话,形状 [3,2]
三轴张量3两句话,形状 [2,3,2]

这里最容易混淆两个「维」:一个 100 维向量,表示它有 100 个分量,数组却只有一个轴。形状 [2,3,100] 的数据有三个轴,每个词仍由一个 100 维向量表示。

把边界说清楚

更抽象的数学张量还涉及坐标变换性质,这里不展开。数组轴的数量也常被叫作 tensor rank,但它与线性代数里矩阵的秩不是一回事。

第 3 站

给每个轴一个名字

只记 [2,3,2] 还不够,还要知道每个位置是什么意思。给轴起名:[batch, sequence, features],也就是[批量里的句子数, 每句话的词数, 每个词的特征数]。

X 的形状 = [2,3,2]
X[1,2,0]:第 2 句话,第 3 个词,第 1 个特征(索引从 0 开始)

总元素数是 2×3×2=12。多头注意力以后还会增加 head 轴;图像数据可能有批量、高、宽、颜色通道这些轴。数字表能不能相加、在哪个方向求平均,都要先知道每个轴的意义。

形状 [4,8,16] 的语言数据,按 [批量,词数,特征] 约定,共有几个数?每个词是几维向量?
第 4 站

reshape、转置与广播,各管一件事

reshape 像把同一串珠子重新分组:[1,2,3,4,5,6] 按顺序放成 2×3 或 3×2,总数都必须是 6。它不会凭空增加数字,也不会自动理解哪行属于哪句话。

转置或轴交换则按坐标移动元素。把矩阵 [[1,2,3],[4,5,6]] 转置,会得到 [[1,4],[2,5],[3,6]];直接按原顺序 reshape 成 3×2,得到的却是 [[1,2],[3,4],[5,6]]。形状一样,不代表排列一样。

广播让一条较小的规则重复应用:给 [2,3,2] 的每个词加偏置 [10,20],等于每个词的第一个特征加 10、第二个加 20。形状 [2] 从最右侧与特征轴对齐,前面的轴视作长度 1。

广播从最右轴对齐:两轴长度相同,或其中一个为 1,才兼容。
[2,3,2] + [2] → [2,3,2]
[2,3,2] + [3] → 最右轴 2 与 3 冲突,不能相加
把边界说清楚

广播是元素级运算的对齐规则,不是矩阵乘法的内部维度匹配规则。不要混用。

第 5 站

动手拆包:同样十二个数

下面两句话的特征先用 1 到 12 这些小整数代替。切换视角,观察每个数字实际去了哪里;再试着把它们装进 5×3,看看少不了也多不了的十二个数为什么拒绝这个安排。

句子打包台 · 数值没变,轴的意义变了吗?

实际模型处理不同长度的句子时,还需要补齐与 mask,后面的语言模型章节再展开。现在先掌握一句话:形状不仅决定能不能算,也决定这一算在处理哪种信息。

第 6 站

总结:先读形状,再读公式

💡 章节速记 · 本课核心

张量把数据沿有意义的轴组织起来。形状是它的包装说明,而不是一串可以随意交换的数字。

💡 用大白话梳理:这一课的核心直觉

  • 向量的分量数,与数组有几个轴,是两个不同概念。
  • [batch,sequence,features] 帮你定位一条信息的位置与角色。
  • reshape 保持总数,轴交换按坐标重排,广播重复小规则。
  • 下一课从数据的包装转向运算的规则:什么叫一个函数?
小测验

学习小测验

动动脑筋:核心直觉小测验(选出你的答案后点击「提交」,即可查看生动通俗的详细解析)

Q1按 [批量,词数,特征] 约定,形状 [2,3,4] 表示什么?
Q2一共有 12 个数,哪种 reshape 不合法?