本册小节 · 直接定位
  1. 课堂活动:先选一个问题
  2. 学习目标:从会认结构,到能解释设计
  3. 怎样读代码与使用 AI
  4. 返回课程

从监督学习到动态计算

Learning to See — Network Architecture。 从图像与类别标签出发,理解一台视觉网络怎样连接、怎样学习,以及怎样分配计算。

打开第二讲 Slides · 网页导读与学习材料

课堂先选一个问题。 下方活动可以只读保存结果,也可以按各册准备步骤运行;不必从第一本开始逐本执行。讨论时带回三件东西:你改了什么、哪张图或哪个数值支持判断、还有什么不能推出。

课后连续阅读按 CLS 01 → CLS 03 → CLS 04 → CLS 06 → CLS 07;观察与干预按需读 CLS 05。CLS 补足推理,Lab 让你改变条件并检验,网页阅读版便于直接看图,下载版保留代码与输出。

课外链接建议右键在新标签页打开,结束后切回原 Slides 标签。各册的返回链接定位到对应主题,不会自动恢复任意来源停点。

从课堂问题进入材料

课堂活动:先选一个问题

可以两人结对:一人先预测,一人运行或读图,再交换解释。下面是选择入口,不是全部必做清单;具体代码位于各册所列小节。

想检验什么 怎样开始 只改一项/做一个观察
一次更新:步长变大一定更好吗? 短练 · NumPy / Matplotlib;准备块 → 第 3 节;改 P 后先重跑准备块 scalar_lr:0.1 → 0.3,再单独试 0.55;先预测 w′、y′、L′。
同一个核:增加输入通道会改变什么? 独立短练 · PyTorch;该节代码自带导入,无数据下载或训练 只把 CIN:2 → 3,保持 COUT=3、KH=2、KW=2。
残差:有 skip 就一定保留输入吗? 独立短练 · PyTorch;该节代码自带导入,只做前向与求导 只把 BRANCH_GAIN:0 → −1,预测 skip / post-ReLU 四种组合。
结构与增强:先读四格,再解释取舍 读保存结果 · 无需运行;直接看四组图表;完整重算需第 4 节训练 同一结构内比较有/无增强,再比较原图与右移测试。
遮挡:同样的框等于同样的干预吗? 先读保存图 · 可选固定模型前向;重算需配套文件 → 准备 → 第 1 节 → 第 3 节 先比较 A/B 的改变像素数;预测 FILL:0 → 0.5 会怎样。
早退:为什么动态方案没赢过浅出口? 读表与手算 · 无需训练;读三条 MAC 路径和固定浅出口负对照 用 357 张早退、3 张继续核对平均值;再预测 τ=1.01。

每组带回一项证据和一句限制:改了什么、结果支持什么、还不能说明什么。设备暂时不能运行时,保存结果仍可完成比较讨论。

主讲—CLS—Lab 对应关系

主讲问题 连续阅读 可选择的活动
A · 一台视觉网络怎样学起来 CLS 01 · 从像素到学习:表示、损失与一次更新 LAB 06 · 表示、损失与学习步长
B · 为什么这样组织局部计算 CLS 03 · 同一台 CNN:局部计算、共享反馈与检验;CLS 05 · 观察与迁移:响应说明什么,新任务怎样检验 的观察与干预 LAB 01 · 学会一个卷积核:第1/3节,局部乘加与共享梯度;LAB 02 · 小 CNN 与图像平移:第5/6节,图像平移与预测变化;LAB 03 · 架构实验室:第1/3/4节,感受野、分支和残差条件;LAB 08 · 从真实响应到遮挡对照:第1/3节,真实响应与同面积遮挡对照
C · 网络不只是不断加层 CLS 04 · 为什么还要加深:训练起点、规模与残差;CLS 06 · 现代骨干与公平比较 的连接与比较 LAB 03 · 架构实验室;LAB 05 · 经典架构与视觉表示 的相关段落
D · 给定预算,哪些计算值得保留 CLS 06 · 现代骨干与公平比较;CLS 07 · 设备、自动设计与动态计算 的成本部分 LAB 10 · 成本目标与结构选择
E · 谁来选择这张计算图 CLS 07 · 设备、自动设计与动态计算 的搜索与部署部分 LAB 10 · 成本目标与结构选择 的验证选择与简单基线
F · 看到输入以后怎样选择计算 CLS 07 · 设备、自动设计与动态计算 的动态计算收束 LAB 11 · 何时继续计算

可以先阅读已保存的图与结果,再预测改变一个条件会发生什么。CLS 补足推理,Lab 保留可运行代码、协议与反例。

按图继续观察:

全部材料索引

材料 用途与推荐位置 网页与下载
CLS 00 · 第二讲导读 先读:本讲主题、入口与材料选择 阅读 · Notebook
CLS 01 · 从像素到学习:表示、损失与一次更新 主线 A:表示、分数、监督反馈和一次更新 阅读 · Notebook
CLS 02 · 传统视觉:局部描述、共同词典与分类 历史参考:局部描述、共同词典与分类分工 阅读 · Notebook
CLS 03 · 同一台 CNN:局部计算、共享反馈与检验 主线 B:同一台 CNN 的局部计算、共享梯度与检验 阅读 · Notebook
CLS 04 · 为什么还要加深:训练起点、规模与残差 主线 C:规模、深度、残差与同深度证据 阅读 · Notebook
CLS 05 · 观察与迁移:响应说明什么,新任务怎样检验 主线 B 按需:观察与干预;迁移部分转入第三讲 阅读 · Notebook
CLS 06 · 现代骨干与公平比较 主线 C–D:现代模块、结构贡献与公平比较 阅读 · Notebook
CLS 07 · 设备、自动设计与动态计算 主线 D–F:成本、搜索、部署前选网与逐输入计算 阅读 · Notebook
CLS 08 · 分布变化与适应 独立参考:分布变化、评价与适应的边界 阅读 · Notebook
LAB 01 · 学会一个卷积核 主线 B 可选:核对局部乘加与共享梯度 阅读 · Notebook
LAB 02 · 小 CNN 与图像平移 主线 B 可选:MLP/CNN × 平移增强的真实比较 阅读 · Notebook
LAB 03 · 架构实验室 主线 B–C 可选:感受野、通道、分支与残差 阅读 · Notebook
LAB 04 · 卷积怎样变成图像分类器 按需实现参考:卷积索引、边界、梯度与成本 阅读 · Notebook
LAB 05 · 经典架构与视觉表示 架构参考:历史条件、Inception、BN 与残差;按问题查阅 阅读 · Notebook
LAB 06 · 表示、损失与学习步长 主线 A 可选:表示、损失与步长的精确核对 阅读 · Notebook
LAB 07 · 空间格、方向桶与传统表示 历史参考:空间格、方向桶、词袋与词典 阅读 · Notebook
LAB 08 · 从真实响应到遮挡对照 主线 B 可选:固定模型的真实响应与遮挡对照 阅读 · Notebook
LAB 09 · 视觉 Attention 完整层 第五讲暂存:完整视觉 Attention 层;非第二/第三讲前置 阅读 · Notebook
LAB 10 · 成本目标与结构选择 主线 D–E 可选:CPU 计时、成本目标与候选选择 阅读 · Notebook
LAB 11 · 何时继续计算 主线 F 可选:验证阈值、早退与固定浅出口负对照 阅读 · Notebook
LAB 12 · Source、Norm 与 Tent 独立适应参考:Source/Norm/Tent 协议、保存结果与失败条件 阅读 · Notebook

参考材料分别解决什么问题

学习目标:从会认结构,到能解释设计

  1. 沿同一计算图解释图像、分数、监督误差与参数更新。
  2. 区分串行、分支、相加与拼接,检查形状和信息接口。
  3. 将参数、MAC、存储与真实延迟分开,识别结构与配方混杂。
  4. 区分部署前选网、逐输入选路、共享块循环与测试时学习。
  5. 用简单静态基线、预期指标、额外开销与反证条件提出一个结构改动。

怎样读代码与使用 AI

先独立写一句预测,再用 AI 协助定位或修改一个条件。运行前核对输入形状、数据划分和评价指标;运行后先读数值与图,再判断预测是否成立。

讨论时带回什么 一个可用的句式
改动与不变量 我只把……改为……,其余……保持相同。
证据 在……条件下,图中的……/输出的……支持了……。
限制与下一步 这还不能说明……;下一项最小对照是……。

AI 可以帮你解释报错、追踪张量或生成小改动,不能代替比较协议。遇到结果不如预期,先核对条件;保留断言、失败例和不占优的基线。不要通过换测试样本或删掉对照让方案获胜。

需要重算时:环境、文件与证据身份

只看图与保存结果: 不需要启动运行环境。先按所选 Lab 开头的阅读路线定位图、表和结论。

运行短练习: 先运行该册的准备单元,再执行明确标出的依赖。LAB 01/03 的小张量实验使用 PyTorch;LAB 06 的学习步实验使用 NumPy 与 Matplotlib。下面的通用环境检查会安装缺少的包,按需执行。

复算模型实验: LAB 02 的第 5/6 节依赖第 4 节产生的模型、训练记录和预测变量,不能仅上传结果文件后直接跳入。LAB 08 则从匹配的模型文件和数据读取,不借用另一本 Notebook 的内存。可下载原模型与数据配套包,保留 data/ 与 results/ 目录,并核对各册要求的模型哈希、样本划分与准备步骤。

LAB 10/11 从 sklearn 内置 digits 独立准备数据和模型;阅读其历史输出不需要重训,重新执行训练会得到一次新的运行记录。LAB 11 的平均 MAC 是 conv/linear 乘加账本,不是实际早退计时。LAB 12 是按需参考,采用自己的 BN 模型、初始化、batch、顺序与重置协议。

保存输出标注了原执行时间或模型身份。重新计算时记录自己的环境和条件,并把新结果与历史结果分开比较。

查看代码 · 单元 16
import importlib.util
import importlib.metadata
import subprocess
import sys

if sys.version_info < (3, 10):
    raise RuntimeError('Please choose a Python 3.10+ environment for these notebooks.')

required = {
    'numpy': 'numpy',
    'sklearn': 'scikit-learn',
    'matplotlib': 'matplotlib',
    'torch': 'torch',
    'IPython': 'ipython',
    'nbformat': 'nbformat',
    'matplotlib_inline': 'matplotlib-inline',
}
missing = [package for module, package in required.items()
           if importlib.util.find_spec(module) is None]
print('Missing packages:', missing or 'none')

# Install only missing packages. CPU PyTorch is enough for these labs.
if 'torch' in missing:
    subprocess.check_call([
        sys.executable, '-m', 'pip', 'install', 'torch',
        '--index-url', 'https://download.pytorch.org/whl/cpu',
    ])
other_missing = [package for package in missing if package != 'torch']
if other_missing:
    subprocess.check_call([sys.executable, '-m', 'pip', 'install', *other_missing])
importlib.invalidate_caches()

import numpy
import matplotlib
import torch
import IPython
import nbformat
import matplotlib_inline
print('Environment ready. Python:', sys.version.split()[0])
for package in required.values():
    print(package, importlib.metadata.version(package))
print('Next: choose the matching Lab in the Notebooks sidebar and run its preparation cells first.')

第三讲与后续材料

本讲先弄清网络怎样连接、训练与分配计算;第三讲 · 可迁移表示与多模态感知继续追问:已经学到的表示怎样复用?类别标签之外还能从哪里获得学习信号?

接下来从检测与分割的空间输出,走向 3D、Video,以及图像和语言之间的对应。这是课程安排;各部分当前可阅读、可运行的材料以第三讲导读为准。

CLS 05 保留当前名称,本讲使用观察与干预部分;迁移实验进入第三讲的独立 LAB 09。不同讲次项目不共享运行内存,进入第三讲后按其材料自己的准备步骤操作。完整 Attention 仍在后续讲次展开,当前第二讲 LAB 09 是按需实现参考。

返回课程

第二讲主讲 · 第二讲 HTML 导读 · 第三讲主讲 · 第一讲 · 课程主页

来源、许可与实验条件保留在各材料中;版本、历史映射与验收范围见。

回到主讲继续判断