🔥 PyTorch 零基础 90 天学习路径
从「print("Hello World")」到「独立完成深度学习项目」
📅 2026.06.16 → 2026.09.13
⏰ 每天 2 小时
📊 总计 180 小时
📚 5 个阶段 13 周
阶段一
Python 基础速成
第1~2周 · 28h
阶段二
PyTorch 基础
第3~5周 · 42h
阶段五
综合项目+总结
第12~13周 · 26h
📈 学习路线总览
阶段一 · Python 基础速成 第1-2周 | 28小时
🎯 周目标:能独立写出 50 行以内的 Python 脚本
| 天 | 主题 | 学习内容 | 练习 |
| 1 | 环境搭建 | 安装 Anaconda,配置 Jupyter Notebook | 成功运行第一个 Python 脚本 |
| 2 | 变量与数据类型 | 整数、浮点、字符串、布尔、类型转换 | 变量赋值 + print 练习 |
| 3 | 条件判断 | if / elif / else,比较运算符 | 写一个成绩等级判断器 |
| 4 | 循环 | for / while / range / break / continue | 打印乘法口诀表 |
| 5 | 列表与元组 | 索引、切片、增删改查、列表推导式 | 学生成绩管理小工具 |
| 6 | 字典与集合 | 键值对操作、集合去重 | 单词频率统计器 |
| 7 | 函数 | 参数(默认/可变)、返回值、作用域 | 写一个计算器函数 |
🎯 周目标:熟练 NumPy 数组操作,能用 Matplotlib 画基础图表
| 天 | 主题 | 学习内容 | 练习 |
| 8 | 文件操作 | open / read / write / with 语句 | 读取文件统计词频 |
| 9 | 面向对象(上) | 类、对象、__init__、self | 创建 Student 类 |
| 10 | 面向对象(下) | 继承、多态、魔法方法 | 设计班级管理系统 |
| 11 | NumPy(上) | ndarray 创建、形状、数据类型 | 创建各种形状数组 |
| 12 | NumPy(中) | 索引切片、布尔索引、花式索引 | 矩阵切片练习 |
| 13 | NumPy(下) | 数学运算、广播机制、矩阵乘法 | 手写矩阵运算 |
| 14 | Matplotlib | 折线图、散点图、柱状图 | 可视化学习时间分布 |
阶段二 · PyTorch 基础 第3-5周 | 42小时
🎯 像操作 NumPy 一样熟练操作 Tensor
| 天 | 主题 | 练习 |
| 15 | PyTorch 安装 + CUDA 检查 | 成功 import torch,验证 GPU |
| 16 | Tensor 创建(zero/ones/randn) | 创建 CPU 和 GPU 上的 Tensor |
| 17 | Tensor 索引/reshape/view | Tensor 变形练习 |
| 18 | Tensor 拼接(cat/stack/split) | 数据拼接拆分练习 |
| 19 | 矩阵运算(@/mm/matmul) | 手写矩阵乘法验证 |
| 20 | 广播机制与比较操作 | 利用广播实现向量化计算 |
| 21 | 复习+综合练习 | 用 Tensor 实现简单线性预测 |
🎯 理解反向传播,能用 PyTorch 训练线性模型
| 天 | 主题 | 练习 |
| 22 | 计算图概念(前向/反向) | 画一个简单计算图 |
| 23 | requires_grad / backward() / grad | 手动验证梯度计算 |
| 24 | zero_grad() / 梯度累加 | 实现手动梯度下降 |
| 25 | no_grad() / detach() / eval | 推理时关闭梯度计算 |
| 26 | 自定义梯度(了解) | 了解概念即可 |
| 27 | 从零实现线性回归 | Tensor+Autograd 拟合直线 |
| 28 | nn.Module 重构线性回归 | 对比两种实现方式 |
🎯 掌握数据加载流程,写出标准训练循环模板
| 天 | 主题 | 练习 |
| 29 | 自定义 Dataset 类 | 加载 CSV 表格数据 |
| 30 | DataLoader(batch/shuffle) | 批量加载并可视化 |
| 31 | transforms(ToTensor/Normalize) | 图像预处理流程 |
| 32 | transforms(Compose/增强) | 构建图像处理 pipeline |
| 33 | torchvision 内置数据集 | 下载并加载 MNIST |
| 34 | 梳理完整训练流程 | 画训练流程图 |
| 35 | 阶段总结 | 手写训练模板 |
阶段三 · 神经网络入门 第6-8周 | 42小时
🎯 搭 MLP 在真实数据集上训练出可用模型(Fashion-MNIST 85%+)
| 天 | 主题 | 天 | 主题 |
| 36 | 逻辑回归 + Sigmoid | 37 | MLP + 隐藏层 |
| 38 | 激活函数(ReLU/Tanh/GELU) | 39 | 损失函数(MSE/CE/BCE) |
| 40 | 优化器 SGD + Momentum | 41 | 优化器 Adam + 学习率调度 |
| 42 | MLP 实战:Fashion-MNIST 分类 (目标 85%+) |
🎯 理解 CNN 原理,复现 LeNet-5,接入 TensorBoard
| 天 | 主题 | 天 | 主题 |
| 43 | 卷积核/步幅/填充 | 44 | 池化层(Max/Avg/Adaptive) |
| 45 | nn.Sequential 搭建 CNN | 46 | Conv2d + BatchNorm + Dropout |
| 47 | 复现 LeNet-5 | 48 | TensorBoard 可视化 |
| 49 | 模型保存/加载/断点续训 |
🎯 掌握训练技巧,能诊断和解决常见训练问题
| 天 | 主题 | 天 | 主题 |
| 50 | 过拟合/L1L2/Dropout/EarlyStop | 51 | 学习率调参/热身/余弦退火 |
| 52 | 梯度消失/爆炸/裁剪/BatchNorm | 53 | 权重初始化(Xavier/Kaiming) |
| 54 | 调试技巧(torchinfo/梯度检查) | 55 | GPU优化(混合精度/pin_memory) |
| 56 | 阶段总结:整理 CNN 训练代码模板 |
阶段四 · 深度学习实战 第9-11周 | 42小时
🎯 能用迁移学习在自定义数据集上训练分类器
| 天 | 主题 | 天 | 主题 |
| 57 | 经典网络概览(AlexNet→ResNet) | 58 | ResNet残差连接原理 |
| 59 | 数据增强(RandAugment等) | 60 | 迁移学习:加载预训练模型 |
| 61 | 微调策略 + 分层学习率 | 62 | 混淆矩阵/Precision/Recall/F1 |
| 63 | 端到端图像分类项目 |
🎯 理解 RNN/LSTM,完成文本二分类(IMDB 85%+)
| 天 | 主题 | 天 | 主题 |
| 64 | RNN原理+时间步展开 | 65 | LSTM(遗忘门/输入门/输出门) |
| 66 | GRU vs LSTM 对比 | 67 | 词嵌入(nn.Embedding) |
| 68 | 文本预处理+分词 | 69 | IMDB影评情感分类 |
| 70 | Attention机制 + Seq2Seq入门 |
🎯 了解模型部署流程,对深度学习各方向有全局认识
| 天 | 主题 | 天 | 主题 |
| 71 | TorchScript 模型导出 | 72 | ONNX + Netron 可视化 |
| 73 | FastAPI 搭模型推理API | 74 | GAN 生成对抗网络概览 |
| 75 | Transformer/Self-Attention | 76 | CV/NLP/RL/AIGC 方向概览 |
| 77 | 阶段总结 + 建立学习笔记索引 |
阶段五 · 综合项目 + 总结 第12-13周 | 26小时
| 难度 | 项目 | 涉及技术 |
| ⭐ | 手写数字识别 App | CNN + Flask Web 部署 |
| ⭐ | 猫狗图片分类器 | ResNet 迁移学习 + 数据增强 |
| ⭐⭐ | 中文影评情感分析 | LSTM/GRU + Embedding + 文本预处理 |
| ⭐⭐ | 人脸表情识别 | CNN + 数据增强 + 实时推理 |
| ⭐⭐⭐ | 图像风格迁移 | VGG 特征提取 + 内容/风格损失 |
| ⭐⭐⭐ | 简易 ChatBot | Seq2Seq + Attention |
| Day 78 | 确定项目、收集数据、搭环境 | Day 79 | 数据预处理与探索分析 |
| Day 80 | 搭建 baseline 模型 | Day 81 | 模型调优(调参/正则化/增强) |
| Day 82 | 模型评估与错误分析 | Day 83 | 模型导出与 Web 部署 |
| Day 84 | 中期检查:代码整理、Bug 修复 |
| Day 85 | 代码重构 + 写 README | Day 86 | 可视化结果 + 制作演示 |
| Day 87 | 上传 GitHub + 写项目介绍 | Day 88 | 整理 90 天学习笔记 |
| Day 89 | 查漏补缺:回顾薄弱环节 | Day 90 | 制定下一阶段学习计划 🎉 |
⚠️ 常见问题与避坑指南
🔴 跳过 Python 基础
看不懂代码、不会调试。前两周一定扎实学Python,不要跳!
🔴 环境安装失败
用 Anaconda 创建独立环境;conda install pytorch 比 pip 更稳;善用 Google Colab 免配置。
🔴 只看不写
教程看完,代码写不出。每学一个概念立刻手敲,关掉教程默写。
🟡 backward() 报错?
检查 loss 是否是标量,是否有 in-place 操作修改了 requires_grad 的 tensor。
🟡 GPU 显存不够?
减小 batch_size;torch.cuda.empty_cache();考虑梯度累积。
🟡 模型不收敛/NaN?
先过拟合小批量验证代码;检查学习率是否太大;加梯度裁剪。
🟢 20/80 法则
20% 时间学理论,80% 时间写代码。代码跑起来比看懂所有理论重要。
🟢 建立代码库
把自己写的训练模板、数据处理函数保存下来,后续直接复用。
🟢 善用 AI 辅助
把报错信息+代码贴给 ChatGPT 问,比自己瞎猜快 10 倍。
⏱ 每日学习模板(120分钟)
📖 前5分钟
回顾昨日内容
📖 新知学习 30min
看教程/视频
⌨️ 手敲代码 40min
关闭教程自己写
📝 笔记整理 10min
记关键点和踩坑
❓ 查漏补缺 20min
不懂的搜索/问AI
🧠 隔夜复习 15min
睡前回想今天所学