
LeNet是第一个成功应用的卷积神经网络用于手写数字识别MNIST 数据集。nn.Conv2d(1, 6, 5, padding2)1通道→6通道5×5核保持28×28nn.Sigmoid()激活函数LeNet时代用现在多用ReLUnn.AvgPool2d(2, 2) 2×2平均池化尺寸减半nn.Flatten()把 [N, C, H, W] 展平为 [N, C×H×W]nn.Linear(16*5*5, 120)全连接400→120检查各层输出尺寸变化精度评估函数在GPU上完成如果是 nn.Module设置为评估模式eval()获取模型所在的设备net.parameters() 返回所有参数的迭代器iter(net.parameters())转成迭代器next(...)取第一个参数.param.device看它在 CPU 还是 GPU累加器记录 [正确预测数, 总预测数]不计算梯度no_grad遍历数据集把数据搬到device计算精度net(X)前向传播输出 [batch, 10] 的分数d2l.accuracy(..., y)计算这批有多少预测正确y.numel()这批有多少样本返回准确率训练函数的实现Xavier 初始化确保模型在GPU上运行优化器和损失随机梯度下降和交叉熵损失开始训练外层遍历epoch设置训练模式初始化metric损失总和, 正确数, 样本数内层循环遍历batch指标计算*optimizer torch.optim.SGD(net.parameters(), lrlr)optimizer.step()的内部实现过程PyTorch 训练的标配框架Xavier初始化 → SGD优化器 → 6步训练循环清梯度→搬数据→前向→算损失→反向→更新→ 实时画图监控。AlexNet结构特点更深更大8层LeNet 5层60M 参数LeNet 60KReLU 激活替代 Sigmoid解决梯度消失训练更快Dropout随机丢弃神经元防止过拟合MaxPooling替代平均池化保留最强特征AlexNet与LeNet的结构对比AlexNet和LeNet的设计理念非常相似但也存在显著差异。1AlexNet比相对较小的LeNet5要深得多。AlexNet由八层组成五个卷积层、两个全连接隐藏层和一个全连接输出层。2AlexNet使用ReLU而不是sigmoid作为其激活函数。3隐藏全连接层后加入了丢弃层4数据增强AlexNet 大核开局(11×11) → 小核精细(3×3) ReLU加速 Dropout防过拟合 数据增强扩样本人为扩充数据集让模型更鲁棒。具体的实现框架每个层输出的情况调用上面创建的train_ch6训练函数