当前位置:首页>python>工程师最小 Python:张量是什么、形状怎么读

工程师最小 Python:张量是什么、形状怎么读

  • 2026-10-11 07:03:07
工程师最小 Python:张量是什么、形状怎么读

导读:「AI说人话」让你知道大模型能干什么;通关正篇会拆 Transformer 骨架。中间缺一块:看见 (2, 16, 768) 不发慌。预备第 01 篇只办这一件事。

封面图

📚 系列导航 · 按你的定位选线

  • AI说人话 / 进阶 / 番外:概念与用法
  • AI杂谈 · 神器实测 · Hermes:热点 / 选型 / 源码 
  • ▶ AI技术栈通关手册·预备篇(4 篇):说人话 → 通关正篇的桥
  • AI技术栈通关手册·正篇:从 Transformer 到部署

你正在读 · 第 0 阶段 · 预备 01/04 · 张量与形状


1. 先划重点:三句话版本

问题
大白话回答
张量是啥?
带「形状」的数字块——可以是一个数、一排数、一张表、一摞表。
为啥总写 (B, T, d)?
批量多少条、每条多长、每个位置多「宽」——调试时先对形状,再对公式。
这篇要学到什么程度?
会读 shape、会想象数据怎么排;不要求你写训练框架。

2. 开场:为啥说人话读完还是懵

你已经知道:大模型聊天、RAG 查资料、Agent 调工具。

一打开通关文章,却满屏:

bashx: (batch, seq_len, hidden_dim)

别慌,这是两套语言:说人话讲「能力」,通关讲「数据长什么样」。

预备篇不讲 Transformer 细节,先让你学会第二种语言的字母表。

2.1 本篇和既有系列的区别

系列
讲什么
本篇讲什么
AI说人话
AI 能干什么
数字块怎么摆
通关正篇 01
Transformer 积木
积木进出的形状约定(本篇地基)
Python 教程
for 循环、类
只取 AI 里最常用的「数组思维」

3. 从冰箱里的鸡蛋盒说起

把「张量」想成可叠放的鸡蛋盒:

名字
形状直觉
例子
标量
一颗蛋
3.14
向量
一排蛋
一句话里每个字的编号
矩阵
一盒蛋(行列)
一张灰度图;一层权重表
高维张量
一摞盒 / 一箱摞
一批话 × 每个位置 × 每个特征

在代码里,人们习惯叫 tensor(张量)——你暂时把它读成「带形状的数组」就够。

bash标量     ·向量     · · · ·矩阵     · · ·         · · ·批量矩阵  [矩阵] [矩阵] [矩阵]   ← 最常见:一次处理多条样本

4. 形状(shape):先念出每个数字

AI 代码里几乎处处是:

shape = (2, 8, 128) 

请强制养成习惯:从左往右念人话:

位置
常叫啥
人话
第 1 维
batch B
这一批有几条样本(几句话)
第 2 维
seq_len T
每条有多长(多少 token)
第 3 维
hidden d
每个位置用多「宽」的向量描述

所以 (2, 8, 128) =

2 句话 × 每句 8 个 token × 每个 token 128 维特征。

形状拆解

不同框架维序偶有差别,但 「批量 · 长度 · 特征」 这种三维,在大模型里你会看到到腻。


5. 最小伪代码:创建一个张量长什么样

不必会 PyTorch API 全家桶,认这两句即可:

python# 伪代码:造一个「2 条样本 × 4 个位置 × 8 维」的块x.shape  →  (2, 4, 8)# 取出第 0 条样本、第 3 个位置的那根 8 维向量x[0, 3, :]   # 长度 8 的向量

索引直觉:先选哪一条 → 再选哪个位置 → 再看特征。

常见报错 size mismatch,人话就是:

左边以为是 (2, 8, 128),右边给了 (2, 8, 64)——宽对不上,后面全白搭。


6. 为啥「形状」比公式重要

通关正篇会写:自注意力、FFN、残差……

每一块都可以先当成一个黑盒:

bash输入形状 ──► [某层] ──► 输出形状

很多层(Attention、FFN、残差)在 Decoder 里会保持:

bash(B, T, d)  ──►  (B, T, d)

只有最后输出头常常变成:

bash(B, T, d)  ──►  (B, T, vocab_size)   # 词表有多大,最后一维就有多大

你会发现:还没懂公式,只要形状对得上,就已经能跟着数据流走——这正是预备 04 和通关 01/02 要用的读图法。


7. 你暂时不必会的(刻意砍掉)

为了不吓跑说人话读者,本篇明确不讲:

  • 类、装饰器、异步;
  • 微积分;
  • CUDA 内核怎么写;
  • 完整训练脚本。

你只需要:看见 shape 能翻译成人话。环境安装、完整 notebook,走文末私信附件。


8. 工程上的坑

坑
现象
怎么避
把 batch 当序列长
怎么改都不对
先问:这一维是「几条」还是「多长」
忽略最后一维
「向量」和「标量」搞混
画小格子:最后一维=每个位置的宽度
只看报错英文
心态崩
报错里找 expected vs got 的两个 shape
一上来抄大模型代码
淹没在 API
先在纸上写 (B,T,d),再看代码

9. 六个洞察

六个洞察
#
洞察
一句话
①
张量=带形状的数字块
别神化
②
先念 shape 再谈公式
调试第一动作
③
(B,T,d) 是通用方言
批量·长度·宽度
④
很多层形状不变
变的是内容,不是外形
⑤
输出头才改最后一维
对准词表大小
⑥
预备的目标是读图
不是成为框架作者

10. 跟你有什么关系?

说人话读者: 这是你进入通关世界的字母表。会一点 Python 的人: 把「数组」升级成「带业务含义的维」。下一站: 预备 02——这些数字块上,模型到底在算什么乘加、为啥要 GPU。


11. 写在最后

你会用 ChatGPT,说明你已经跨过「敢碰 AI」; 会读 (B, T, d),说明你开始跨过「敢碰结构」。

下一篇我们不讲架构名词,只讲一件事:模型几乎全在做矩阵乘加,以及显存/算力各自卡什么。


今日互动:用一句话翻译 shape=(4, 32, 256)?评论区打出来练练~

👍 点赞 + 在看,转给「说人话读完想进阶」的朋友。

📮 下期预告:《预备02 · 模型到底在算什么——矩阵乘、显存与硬件直觉》

11.1 📦 需要练手 notebook?

私信 「技术栈预备01」,领取最小张量读写示例(可选)。


「AI技术栈通关手册·预备篇」第 01 篇。为衔接正篇而作;不替代系统 Python 教程。

最新文章

随机文章