人工智能实验报告

 麻瓜大学信息科学与技术学院

学生实验报告

课程名称_  深度学习           实验名称__ 卷积神经网络            
专业班级:_______  学号____________  姓名______ 
 

 一、实验内容

        本实验要求学生能设计一个基于LeNet网络的分类模型,理解并编程实现网络的搭建和训练测试过程,通过样本训练网络,最终能使用训练成熟的网络对实验数据进行分类。 
具体要求:给出mnist数字分类的样本数据使用设计的网络进行训练,然后任意给出实测数据,网络对实测数据能正确识别。

二、实验环境

(主要描述实验的编程环境,包括操作系统、编程语言、编程工具等)

操作系统:    Arch Linux x86_64  
编程语言:    Python 3.12.3 
编程工具:  zsh 5.9-5  vim-runtime 9.1.0346-2

三、实验步骤

1.分析设计

(此处写程序的设计思路,流程图、接口设计等)

 程序设计思路
  • 数据集初始化模块 (mnist_init.py):该模块负责下载MNIST数据集,并提供了显示数据集信息和保存图像的功能。
  • 模型训练模块 (mnist_train.py):该模块定义了LeNet模型的结构,并提供了加载MNIST数据、训练模型、测试模型和保存模型的功能。
  • 模型测试模块 (mnist_test.py):该模块用于加载训练好的模型并对测试集进行测试,同时展示预测结果的可视化。
  • 主程序模块 (main.py):该模块为用户提供了一个简单的命令行界面,根据用户的选择调用不同的功能模块。
流程图:

 

接口设计:
 

数据集初始化模块 (mnist_init.py):

  • download_mnist_dataset(): 下载MNIST数据集
  • display_dataset_info(train_data, test_data): 显示数据集信息
  • save_img(data, save_path): 保存图像

模型训练模块 (mnist_train.py):

  • LeNet: LeNet模型结构
  • load_mnist_data(train_batch_size, test_batch_size): 加载MNIST数据集
  • train_model(model, train_loader, criterion, optimizer, epochs): 训练模型
  • save_model(model, file_path): 保存训练好的模型

模型测试模块 (mnist_test.py):

  • LeNet: LeNet模型结构
  • test_model(model, test_loader): 测试模型

主程序模块 (main.py):

  • main(): 主程序入口,提供命令行交互界面

2.程序实现

(此处描述程序数据结构和核心算法的实现,遇到的主要问题及解决办法等。注意:不需要粘贴全部代码,只贴核心重要的部分;需要有必要的注释,不能只贴代码)

四、实验结果

(描述测试数据的设计及最终得到的结果,可截图) 

五、实验总结

 (对实验过程和结果进行分析,如在分析设计与实现的过程中需要特别注意的地方等)

        经典的LeNet模型结构简单而高效由相对简单的卷积神经网络结构,由卷积层、池化层和全连接层组成。其简单的结构使得它在计算资源有限的情况下也能取得较好的效果。为手写数字识别提供了高效的方法,是早期引入卷积层和池化层的经典模型之一。

过程分析:

  • 数据预处理:数据预处理对模型训练和性能有着重要影响。在这个示例中,对MNIST数据集进行了转换为张量和归一化的操作,这有助于加速模型的收敛和提高训练效果
  • 损失函数与优化器的选择: 
    损失函数的选择需要与任务类型相匹配,对于分类任务,交叉熵损失函数是常用的选择。 
    优化器的选择也很重要,不同的优化器对模型的收敛速度和稳定性有着不同的影响。在这里使用了随梯   度下降(SGD)优化器。
  • 训练过程与调参: 
    训练过程中需要关注模型的收敛情况,包括损失值的变化和准确率的提升。 
    需要注意学习率、批大小等超参数的选择,这些超参数会直接影响模型的训练效果。

结果分析:  

  • 可以通过绘制损失曲线和准确率曲线来分析模型的训练效果,进一步评估模型的性能。
  • 还可以对模型进行测试集上的验证,评估模型在未见过的数据上的表现。
  • 如果需要进一步提高模型性能,可以尝试调整模型结构、超参数,或者尝试其他更复杂的模型。

全部代码在Github

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录