这组笔记整理自
D:\Codes\AI\111pytorch中的个人笔记、Notebook、代码实验和项目资料。目标不是复制整个目录,而是把可复用的知识、训练方法和实验结论沉淀到笔记库中。
学习路线
flowchart LR
A[张量与自动微分] --> B[数据管道与训练闭环]
B --> C[CNN: LeNet 与 ResNet]
B --> D[RNN 与自然语言推断]
B --> E[GNN 与 PyTorch Geometric]
C --> F[图像分类实验]
D --> G[SNLI / 注意力实验]
E --> H[节点分类 / 图分类 / 链路预测]
- PyTorch基础-张量与自动微分
- 张量、形状、广播、设备与数据类型
- 计算图、梯度累积、
detach()、no_grad()与inference_mode()
- PyTorch训练流程-数据到验收
Dataset/DataLoader- 训练、验证、测试、检查点与可复现性
- 一份可直接复用的分类训练模板
- CNN-LeNet与ResNet
- 卷积网络的基本结构
- LeNet 的逐层形状和 MNIST 实验
- ResNet 残差连接与迁移学习
- RNN与自然语言推断
- RNN、LSTM、GRU 的核心区别
- SNLI 数据准备与 Decomposable Attention
- 图神经网络与PyTorch-Geometric
Data、edge_index、消息传递和 GCN- Cora、PPI、MUTAG、GraphSAGE 与有向图任务
- 实验项目与源码索引
- 原始目录的完整分类和文件映射
- Notebook、PDF、数据集、模型文件与第三方资料的保留策略
整理原则
- 知识进入笔记库:提炼个人 Markdown、Notebook 解释和实验代码中的稳定结论。
- 代码保留代表性片段:训练循环、模型结构、消息传递等写入笔记,完整工程仍保留在源目录。
- 大文件只建索引:
d2l-zh、数据集、模型权重、教程仓库和 PDF 不重复复制。 - 修正旧写法:对已经失效、容易误解或实验口径不严谨的内容单独标注。
- 不改源目录:本次没有移动或删除
D:\Codes\AI\111pytorch中的任何文件。
这次重点修正的认识
| 原记录中的写法 | 整理后的结论 |
|---|---|
detach() 后的张量继续 backward() |
detach() 会切断计算图;结果默认不需要梯度,不能沿原图反传 |
Windows 建议固定 num_workers=0 |
0 适合调试;多进程可用,但要遵守 spawn 规则并加主入口保护 |
model.eval() 等同于关闭梯度 |
eval() 只切换 Dropout/BatchNorm 等模块行为;仍需 inference_mode() 或 no_grad() |
pretrained=True |
TorchVision 现使用显式 Weights 枚举 |
| 每个 batch 的准确率再取平均 | 最后一个 batch 可能更小,应按样本数累计正确数和损失 |
MNIST 的 test_iter 每轮参与选最优模型 |
这相当于把测试集当验证集,记录的 97.97% 不能视作独立测试结果 |
| Cora 同时写成 5429 条边和 10556 条边 | 原始引用关系与 PyG 中存储的有向边条目是不同口径,必须注明 |
主要依据
- 本地材料:
D:\Codes\AI\111pytorch - PyTorch 数据加载文档
- PyTorch 模型保存与加载
- TorchVision 模型与预训练权重
- PyTorch Geometric Data
- PyTorch Geometric 创建消息传递网络