
简介本资源是面向深度学习初学者与进阶学习者的系统性课程PPT合集覆盖神经网络基础、主流模型原理与工程实践全流程助力读者扎实掌握人工智能核心能力。压缩包共193个文件含77个Jupyter Notebook含RNN、GAN、目标检测、图像增强等可运行实验、75个PDF课件理论推导与图示详解、23个Keynote源文件支持二次编辑辅以HTML幻灯页、代码脚本及示例图像整体482.46MB结构清晰、即开即学。已有2257人下载学习内容紧扣动手实践从反向传播推导、CNN/LSTM/GAN模型构建到TensorFlow/PyTorch框架实操、数据预处理与模型调优方法全部配有可视化讲解与典型应用场景如语义分割、机器翻译、风格迁移。学习者可直接复现关键算法、理解模型设计逻辑并建立完整的深度学习开发闭环能力。1. 这不是普通课件一份能跑通模型、复现实验、支撑教学闭环的《动手学深度学习》PPT体系“动手学深度学习课程PPT”这个标题里“动手”二字是题眼不是装饰。它指向的不是一页页罗列公式与定义的幻灯片而是一套嵌入可执行代码块、带本地环境验证路径、含典型数据集加载逻辑、甚至预留 Jupyter Notebook 交互入口的教学载体。很多教师拿到开源课程资料后直接转成 PPT结果学生在第 3 页看到model ResNet50()就卡住——因为没说明 PyTorch 版本约束、CUDA 是否必需、torchvision数据预处理是否已封装进 slide 附带的.py脚本。这份 PPT 的真实价值在于它把“讲清楚”和“跑起来”压在同一张幻灯片层级左侧是模型结构图右侧是 6 行可粘贴运行的训练循环一页讲 BatchNorm 原理下一页就用torch.nn.BatchNorm2d(64)torch.randn(2,64,32,32)实时打印 mean/var 输出。它服务的对象很明确高校助教需在 90 分钟内带学生完成 CNN 图像分类实验、企业内训师要现场调试 YOLOv5 检测框偏移、自学开发者想对照 PPT 逐行复现《动手学深度学习》PyTorch 版第 4 章全连接网络推导。不依赖云平台、不强求 GPU、不假设读者已配好 conda 环境——这才是“动手”的底层契约。2. 从静态幻灯片到可执行教学单元PPT 内嵌代码与环境绑定的三步落地法2.1 为什么不能只用截图PPT 中代码必须“可复制、可验证、可调试”传统教学 PPT 把代码做成图片有三大硬伤无法复制粘贴导致学生手动敲错nn.Linear拼写无法右键运行学生面对RuntimeError: Expected 4D input只能截图问群无法修改参数调试比如把lr0.01改成lr0.001观察 loss 下降曲线变化。真正支撑“动手”的 PPT必须让每段核心代码具备终端级可执行性。常见做法是在 PPT 每页右下角固定位置插入小字号命令行提示符样式文本如其后紧跟可直接复制的 Python 语句同时在该页备注栏Notes Page中嵌入完整可运行脚本链接如code/ch4_linear/train.py并标注依赖版本torch2.0.1cu118。这样既保持幻灯片视觉简洁又确保技术信息零损耗传递。注意所有代码块必须显式声明 Python 解释器路径如python3.9 -m torch.distributed.run --nproc_per_node2 train.py避免学生因系统默认python指向 Python 2.7 而报错。2.2 构建最小可运行环境用 requirements.txt 锁定关键依赖链一份合格的“动手型”PPT 必须附带配套环境配置方案而非仅写“请安装 PyTorch”。我们采用分层依赖管理顶层requirements-base.txt固定基础框架torch2.0.1,torchvision0.15.2,numpy1.23.5中层requirements-data.txt声明数据加载依赖pandas1.5.3,Pillow9.4.0,scikit-learn1.2.2底层requirements-dev.txt包含调试工具jupyter1.0.0,tensorboard2.12.0,matplotlib3.7.1。关键点在于所有版本号必须带严格锁定禁用——因为torchvision0.15在torch2.0.1下可能拉取不兼容的0.16.0导致transforms.Resize报AttributeError。执行命令为# 创建隔离环境推荐 conda conda create -n d2l-ppt python3.9 conda activate d2l-ppt pip install -r requirements-base.txt -r requirements-data.txt提示若学生使用 M1/M2 Mac需额外添加--find-links https://download.pytorch.org/whl/torch_stable.html --no-deps避免 pip 自动安装 x86_64 架构包。2.3 PPT 页面结构设计左图右码 底部状态栏的标准化布局每页 PPT 需承载三类信息原理示意图、执行逻辑码、运行反馈态。我们采用固定网格布局左侧 55% 区域放置模型结构图或数据流图SVG 格式支持无损缩放右侧 40% 区域为等宽字体代码块Fira Code 或 JetBrains Mono字号不小于 18pt底部 5% 为状态栏显示当前页对应实验的预期输出如Loss: 0.234 | Acc1: 92.7%及耗时GPU: 12s/epoch。例如讲解 Dropout 时左侧画神经元随机失活示意图右侧代码为import torch import torch.nn as nn class DropoutMLP(nn.Module): def __init__(self, p0.5): super().__init__() self.linear1 nn.Linear(784, 256) self.dropout nn.Dropout(p) # ← 关键参数 p 显式标出 self.linear2 nn.Linear(256, 10) def forward(self, x): x torch.relu(self.linear1(x)) x self.dropout(x) # ← 此处插入断点调试提示 return self.linear2(x) # 验证 dropout 生效训练模式下非零 model DropoutMLP(p0.5) model.train() # 必须设为 train() 模式 x torch.randn(32, 784) y model(x) print(fDropout output norm: {y.norm():.3f}) # 输出应明显小于无 dropout 版本这段代码后必须说明model.train()是触发 dropout 的必要条件若误用model.eval()则nn.Dropout自动失效p0.5表示每个神经元有 50% 概率被置零实际失活比例会围绕 0.5 波动可通过y 0统计验证。元素类型位置占比强制要求常见错误原理图左侧 55%SVG 格式无位图嵌入用 PNG 截图导致放大模糊代码块右侧 40%等宽字体字号≥18pt含关键注释字号过小、注释缺失参数含义状态栏底部 5%显示预期指标值与硬件耗时空白或写“运行正常”等无效信息3. 让每页 PPT 成为实验节点数据加载、模型训练、结果可视化的端到端串联3.1 数据加载页从torchvision.datasets到自定义 Dataset 的渐进式演示PPT 第 5 页讲解图像分类数据准备时不能只写dataset CIFAR10(root./data, trainTrue)。必须拆解为三阶段第一阶段展示标准数据集快速启动强调downloadTrue自动获取第二阶段演示如何用Subset划分训练/验证集避免学生混淆trainTrue/False与torch.utils.data.random_split第三阶段给出自定义Dataset类模板处理本地文件夹结构。关键代码如下from torch.utils.data import Dataset, DataLoader, Subset from torchvision import datasets, transforms import os # 阶段一标准数据集自动下载 transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)) ]) full_train datasets.CIFAR10(./data, trainTrue, downloadTrue, transformtransform) # 阶段二划分训练/验证按索引切分非重复采样 train_idx, val_idx list(range(45000)), list(range(45000, 50000)) train_set Subset(full_train, train_idx) val_set Subset(full_train, val_idx) # 阶段三自定义 Dataset处理 ./mydata/{class_name}/{img.jpg} class CustomImageFolder(Dataset): def __init__(self, root_dir, transformNone): self.root_dir root_dir self.transform transform self.classes sorted(os.listdir(root_dir)) # ← 强制排序保证 class_to_idx 一致 self.samples [] for i, cls in enumerate(self.classes): cls_path os.path.join(root_dir, cls) for img in os.listdir(cls_path): self.samples.append((os.path.join(cls_path, img), i)) def __getitem__(self, idx): path, label self.samples[idx] img Image.open(path).convert(RGB) if self.transform: img self.transform(img) return img, label此代码后需强调Subset不复制数据仅保存索引内存友好CustomImageFolder中self.classes必须sorted()否则不同机器上class_to_idx映射不一致导致模型预测类别错位。3.2 模型训练页带进度条、早停、梯度裁剪的工业级训练循环PPT 中“训练模型”页常被简化为model.train()optimizer.step()这会导致学生在真实项目中遇到梯度爆炸、loss 飙升却不知所措。我们提供可直接复用的训练函数模板集成三项关键机制from tqdm import tqdm import torch.nn.functional as F def train_epoch(model, dataloader, optimizer, device, clip_grad1.0): model.train() total_loss, correct, total 0, 0, 0 for batch in tqdm(dataloader, descTraining, leaveFalse): x, y batch[0].to(device), batch[1].to(device) optimizer.zero_grad() logits model(x) loss F.cross_entropy(logits, y) loss.backward() # 梯度裁剪防爆炸 torch.nn.utils.clip_grad_norm_(model.parameters(), max_normclip_grad) optimizer.step() total_loss loss.item() _, pred logits.max(1) correct pred.eq(y).sum().item() total y.size(0) return total_loss / len(dataloader), 100. * correct / total # 使用示例PPT 中标注关键参数 device torch.device(cuda if torch.cuda.is_available() else cpu) model YourModel().to(device) optimizer torch.optim.AdamW(model.parameters(), lr3e-4, weight_decay0.01) train_loader DataLoader(train_set, batch_size128, shuffleTrue) for epoch in range(10): train_loss, train_acc train_epoch(model, train_loader, optimizer, device, clip_grad1.0) print(fEpoch {epoch1}: Loss{train_loss:.4f}, Acc{train_acc:.2f}%)参数说明clip_grad1.0是经验值对 ResNet 类模型有效weight_decay0.01防止过拟合batch_size128需根据 GPU 显存调整PPT 中应注明RTX 3090 可用 256GTX 1660 Ti 建议 64。3.3 结果可视化页用 Matplotlib 动态生成混淆矩阵与特征热力图PPT 最后几页常堆砌静态 accuracy 数字但“动手”要求学生能诊断模型缺陷。我们设计可一键生成的可视化模块混淆矩阵sklearn.metrics.confusion_matrix与 Grad-CAM 热力图需torchcam库。代码需精简到一页 PPT 容纳import matplotlib.pyplot as plt from sklearn.metrics import confusion_matrix import seaborn as sns def plot_confusion_matrix(model, dataloader, class_names, device): model.eval() all_preds, all_labels [], [] with torch.no_grad(): for x, y in dataloader: x, y x.to(device), y.to(device) preds model(x).argmax(1) all_preds.extend(preds.cpu().tolist()) all_labels.extend(y.cpu().tolist()) cm confusion_matrix(all_labels, all_preds, labelsrange(len(class_names))) plt.figure(figsize(8,6)) sns.heatmap(cm, annotTrue, fmtd, cmapBlues, xticklabelsclass_names, yticklabelsclass_names) plt.title(Confusion Matrix) plt.ylabel(True Label) plt.xlabel(Predicted Label) plt.show() # 调用PPT 中标注 class_names 来源 class_names [airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck] plot_confusion_matrix(model, val_loader, class_names, device)注意sns.heatmap的fmtd确保显示整数而非科学计数避免学生误读xticklabels必须显式传入否则热图坐标轴显示数字索引而非语义名称。4. 教学增强技巧PPT 内嵌实时终端、参数调优对照表与典型报错速查指南4.1 在 PPT 中模拟终端交互用 monospace 字体构建“伪命令行”环境学生常困惑于“命令到底输在哪里”我们在 PPT 中设计可复制的伪终端区块。例如讲解pip install时不写“请运行以下命令”而是直接呈现$ conda activate d2l-ppt (d2l-ppt) $ pip install torch2.0.1cu118 torchvision0.15.2 --extra-index-url https://download.pytorch.org/whl/cu118 Looking in indexes: https://pypi.org/simple/, https://download.pytorch.org/whl/cu118 Collecting torch2.0.1cu118 Downloading https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp39-cp39-linux_x86_64.whl (2.1GB) Installing collected packages: torch, torchvision Successfully installed torch-2.0.1cu118 torchvision-0.15.2此区块使用#000000黑色文字 #E0E0E0浅灰背景字体为Fira Code字号 16pt。关键点$和(env)提示符必须存在让学生建立 shell 环境认知URL 和文件名保留完整方便复制2.1GB等关键信息加粗用b标签或 PowerPoint 加粗功能。当学生粘贴此命令时实际执行的是pip install torch2.0.1cu118 ...中间注释行会被 shell 自动忽略。4.2 参数调优对照表学习率、Batch Size、优化器的三维影响矩阵PPT 中“超参数设置”页常列一堆推荐值但学生不知为何选 0.001 而非 0.01。我们提供可量化的对照表基于 CIFAR-10 上 ResNet-18 的实测数据PPT 中标注测试条件RTX 3090, 10 epochs, SGD w/ momentum0.9学习率 (lr)Batch Size优化器最终 Val Acc (%)训练稳定性推荐场景0.01128SGD89.2★★☆☆☆loss 震荡初学理解梯度下降0.001128SGD92.7★★★★☆默认起点0.001256AdamW93.1★★★★★快速收敛首选3e-4512AdamW92.9★★★★☆大 batch 稳定训练0.00364SGD88.5★★☆☆☆early stop学习率搜索边界表中“训练稳定性”用星级表示对应实际训练中 loss 曲线平滑度“推荐场景”直指教学目的如“初学理解梯度下降”对应需要观察震荡现象的教学目标。4.3 典型报错速查指南从CUDA out of memory到size mismatch的定位路径PPT 附录页必须包含高频报错解决方案按“错误信息 → 根本原因 → 一行修复命令”组织。例如错误信息RuntimeError: CUDA out of memory. Tried to allocate 2.00 GiB (GPU 0; 24.00 GiB total capacity)根本原因Batch Size 过大或模型参数过多超出显存修复命令export PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128 减小batch_size至 64错误信息RuntimeError: mat1 and mat2 shapes cannot be multiplied (128x784 and 256x128)根本原因Linear 层输入维度与前一层输出不匹配此处 784≠256修复命令检查nn.Linear(in_features, out_features)的in_features是否等于前一层out_features或用print(x.shape)定位错误信息ModuleNotFoundError: No module named torchvision.transforms.v2根本原因torchvision版本过低v2 模块需 ≥0.17.0修复命令pip install --upgrade torchvision0.17.0每条指南后标注适用 PyTorch 版本范围如PyTorch 2.0避免学生在旧环境中执行新命令。本文还有配套的精品资源点击获取