"实验报告2:基于 PyTorch 实现手写数字识别的卷积神经网络" 本实验报告的主要内容是使用 PyTorch 框架实现手写数字识别的卷积神经网络,达到测试集准确率98%以上。该实验的主要目的包括掌握卷积神经网络基本原理、掌握主流框架的基本用法、了解如何使用GPU,并通过实验报告从实验环境、网络架构、模型训练、实验结果四个方面进行阐述。 实验环境 在本实验中,我们采用 Anaconda3 + Pycharm 框架进行开发,深度学习框架采用 PyTorch 框架,各类版本号如下:python 3.7.10、pytorch 1.8.1、GPU CUDA 10.2、cudnn 8.2.0、tensorboard 2.4.1、tensorboardX 2.2、hiddenlayer 0.3。 网络架构 我们构建的卷积神经网络采用与 LeNet 类似的结构,使用 hidderlayer 库可视化网络。网络架构如下所示: * CNN1:卷积层,卷积核尺寸为3*3,步长为1,填充为1;激活函数采用 ReLU 激活函数;池化层采用平均池化,尺寸是2*2,步长为2。 * CNN2:卷积层,卷积核尺寸为5*5,步长为1;激活函数采用 ReLU 激活函数;池化层采用平均池化,尺寸是2*2,步长为2。 * FC1:展平层,使用 Flatten 操作;线性层采用两层,采用 ReLU 激活函数。 模型训练 我们使用 GPU 训练所构建的模型,采用梯度下降法优化模型,损失函数使用交叉熵损失。具体模型参数设置如下所示: * 梯度更新:采用 SGD 随机梯度下降的方法。 * 损失函数:采用 CrossEntropyLoss 交叉熵损失函数。 * 超参数设置:batch_size=256、num_epochs=100、学习率 lr=0.01。 实验结果 我们使用 tensorboardX 库对实验结果可视化,包括训练的损失、训练准确率、测试准确率。实验结果表明,测试准确率最终达到了98%以上。 结论 通过这次实验,我们学会了如何利用 PyTorch 深度学习框架实现一段简单的代码,理解了计算图的意义。不仅增加了对于卷积神经网络的理解,还提高了我们的动手能力。对于深度学习的整个流程,包括数据预处理、网络模型构建、模型训练、结果可视化等方面都有了更深层次的理解,对于后续实验起到了很好的启发作用。
- 粉丝: 26
- 资源: 290
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助