LESSON 0.2 · 代码 · 90 分钟
Python:对象、迭代器与向量化思维
Python:对象、迭代器与向量化思维:理解引用语义、广播、切片、生成器与复杂度,完成“不用循环实现批量 bigram 计数”。属于「进入模型之前」学习阶段。
学完你应该能够
- 能不用术语堆砌,解释「Python:对象、迭代器与向量化思维」解决了什么问题。
- 能围绕 引用语义、广播、切片 画出变量与因果关系。
- 能完成「不用循环实现批量 bigram 计数」,并用证据而不是感觉判断结果。
核心概念
引用语义
引用语义要落在一个可手算的小例子上:写清输入、运算、输出与单位,再用代码对拍。 先给它一个可操作的定义,并指出它解决的具体问题。
广播
广播首先是内存与索引契约:它决定哪些元素参与同一次运算,以及结果如何排列。调试时打印维度只是起点,还要检查广播是否悄悄复制了你不想要的关系。
切片
切片首先是内存与索引契约:它决定哪些元素参与同一次运算,以及结果如何排列。调试时打印维度只是起点,还要检查广播是否悄悄复制了你不想要的关系。
生成器与复杂度
生成器与复杂度要落在一个可手算的小例子上:写清输入、运算、输出与单位,再用代码对拍。 用反例说明忽略它时系统会怎样失败。
实践任务
不用循环实现批量 bigram 计数
- 预测:在运行代码前,写下你预期的输出、趋势或失败位置。
- 构建:先写接口和 shape 断言,只保留回答核心问题所需的最小组件。
- 验证:使用手算结果、NumPy/PyTorch 对拍与边界输入;保存参数、随机种子与原始结果。
- 迁移:换一个 shape、dtype 或数据分布后重新预测结果,说明原结论是否仍成立。