LeNet,AlexNet

LeNet

是第一个成功应用的卷积神经网络,用于手写数字识别(MNIST 数据集)。

nn.Conv2d(1, 6, 5, padding=2):1通道→6通道,5×5核,保持28×28

nn.Sigmoid():激活函数(LeNet时代用,现在多用ReLU)

nn.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(), lr=lr)

optimizer.step()的内部实现过程:

++++PyTorch 训练的标配框架:++++Xavier初始化 → SGD优化器 → 6步训练循环(清梯度→搬数据→前向→算损失→反向→更新)→ 实时画图监控。

AlexNet

结构特点:

更深更大:8层(LeNet 5层),60M 参数(LeNet 60K)

ReLU 激活:替代 Sigmoid,++++解决梯度消失++++,训练更快

Dropout:随机丢弃神经元,防止过拟合

MaxPooling:替代平均池化,保留最强特征

++++AlexNet与LeNet的结构对比:++++

AlexNet和LeNet的设计理念非常相似,但也存在显著差异。

(1)AlexNet比相对较小的LeNet5++++要深得多。++++AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。

(2)AlexNet使用++++ReLU++++而不是sigmoid作为其激活函数。

(3)隐藏全连接层后加入了丢弃层

(4)数据增强

++++AlexNet = 大核开局(11×11) → 小核精细(3×3) + ReLU加速 + Dropout防过拟合 + 数据增强扩样本(人为扩充数据集,让模型更鲁棒)++++ ++++。++++

具体的实现:

框架

每个层输出的情况:

调用上面创建的train_ch6训练函数

相关推荐
爱敲代码的小黄14 小时前
神经网络入门指南:从 CNN、RNN 到 Attention
人工智能·面试·程序员
一只爱撸猫的程序猿14 小时前
我看着一个 AI 引擎在 14 天里,从"记忆"走进了"搜索"
人工智能·后端·架构
我登哥MVP15 小时前
DeepSeek-Harness-Super-Agent-学习笔记
人工智能·深度学习·神经网络·机器学习·自然语言处理·agent
LucianaiB15 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
冬奇Lab17 小时前
一天一个开源项目(第256篇):Anatomy —— 让 Claude 为技术概念「发明一台机器」,画成可交互的等距插画
人工智能·开源
孟郎郎17 小时前
打造一切(Craft Anything)——克隆构造世间万物
人工智能·ai·github·软件构建·开源软件
Martina_032117 小时前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
master33617 小时前
AI领域常用名词的系统梳理
人工智能·ai
Spidermanbaout17 小时前
Prompt-Engineering实战-2026年11月2日
人工智能·机器学习·ai·chatgpt·ai编程