阶段:S0-环境搭建与验证 | 预计耗时:30-45 分钟 | 前置:无 环境:
E:\zcode\DeepTraining\model-learn\.venv(Python 3.12.10 + torch 2.15.0+cpu,2026-11-10 已搭好) 代码:model-learn/s0_env_check.py(体检脚本,已创建并实测通过)
学习目标
- 能说清 4 个环境决策的原因:为什么用 venv、为什么装 CPU 版 torch、为什么用国内镜像、为什么固定线程数
- 会跑环境体检脚本,会读它的每一行输出
- 能在任意新目录从零复现这套环境(换机器/重装系统都不怕)
- 认识本机最常踩的坑:解释器用错
核心知识
1. venv:每个项目一个独立"工具箱"
- 痛点:A 项目要 torch 2.15、B 项目要 2.0,全装在系统里必然打架
- venv = 给项目复制一份独立的 Python + 独立的包目录,互不干扰
- 激活的本质只是把
.venv\Scripts插到 PATH 最前面——所以直接写完整路径.venv/Scripts/python.exe比 activate 更明确可靠(这也是 LangGraph 归档 01 篇讲过的教训)
2. torch 的 CPU 版与 GPU 版
- PyPI 上 Windows 的 torch 默认就是 CPU 版(2.15.0+cpu,约 200MB);Linux 默认带 CUDA(约 3GB)
- 你的机器是 Intel UHD 620 核显,不支持 CUDA——装 GPU 版 = 白占 3GB 且根本跑不起来
- 版本号里的
+cpu后缀就是"CPU 构建"的标记,体检脚本会核对它
3. 国内镜像
- 官方 PyPI 在国内经常超时(我们实测吃过
ReadTimeoutError) - 装包一律带:
-i https://pypi.tuna.tsinghua.edu.cn/simple
4. CPU 训练的两个本机设定
torch.set_num_threads(4):i7-8550U 只有 4 物理核,线程超了互相争抢反而慢- DataLoader
num_workers=0:Windows 下多进程开销大易报错,小数据集 0 最快
实验任务
任务 1:跑体检脚本(10 分钟)
cd /e/zcode/DeepTraining/model-learn
.venv/Scripts/python.exe s0_env_check.py
逐行读输出,确认每一项都是 [OK]:Python 版本 / 在 venv 里 / torch 带 +cpu / CUDA 不可用(符合预期)/ 线程数=4 / 矩阵乘法耗时 / MNIST 数据目录存在。
任务 2:故意用错解释器(重要的反面教材,5 分钟)
python s0_env_check.py
观察结果:系统 python(WindowsApps 存根或 3.7)里没有 torch,报 ModuleNotFoundError。
结论:以后所有训练命令必须用 .venv/Scripts/python.exe 开头。
任务 3(可选):复现能力测试(20 分钟)
在 D 盘从零搭一遍,验证你离开笔记也能复现,做完即删:
py -3.12 -m venv D:/test-venv
D:/test-venv/Scripts/python.exe -m pip install torch torchvision matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
把体检脚本的路径参数化跑一遍确认 [OK],然后删除 D:/test-venv 整个目录。
验收标准
衔接下一阶段
环境确认可用 → S0-02 认识张量:训练数据的"原材料"长什么样。