实验目的:掌握增强卷积神经网络性能的方法包括Dropout、 BatchNorm以及残差连接学会使用PyTorch框架以现有的LeNet为基础实现相应的改进。 实验要求:以LeNet为基础分别实现如下几种改进并比较改进前与改进后模型的性能。6与7为扩展任务第一个任务激活函数的改进:将LeNet中的激活函数替换为ReLU。第二个任务池化方式:平均池化改为最大池化。第三个任务卷积核大小:将其中一个55
本次实验以LeNet为基础,通过使用PyTorch框架,学习了增强卷积神经网络性能的方法,包括Dropout、 BatchNorm以及残差连接,并实现了相应的改进。以下是对每个任务的实现及结果的总结:
第一个任务激活函数的改进:将LeNet中的激活函数替换为ReLU。
通过将原本的sigmoid激活函数替换为ReLU激活函数,模型的准确率有所提高,最终测试集上的准确率达到了98.38%。
第二个任务池化方式:平均池化改为最大池化。
通过将原本的平均池化改为最大池化,模型的准确率有所提高,最终测试集上的准确率达到了98.57%。
第三个任务卷积核大小:将其中一个55的卷积核修改为77。
通过将其中一个55的卷积核修改为77,模型的准确率略微提高,最终测试集上的准确率达到了98.49%。
第四个任务:正则化方法1:在全连接层后加入Dropout层(中间的全连接层可增加维度);正则化方法2:卷积层后加入BatchNorm层。
通过在全连接层后加入Dropout层以及卷积层后加入BatchNorm层,模型的准确率有所提高,最终测试集上的准确率分别达到了98.51%和98.62%。
第五个任务:将卷积核从55修改为33,但增加网络的层数(注意调整步长)。
通过将卷积核从55修改为33,并增加网络的层数,模型的准确率有所提高,最终测试集上的准确率达到了98.77%。
综合上述实验结果,可以发现增加网络的层数、使用BatchNorm层以及将卷积核从55修改为33都能够有效提高模型的性能。同时也可以发现,在保证模型准确率的前提下,使用Dropout层的效果不如使用BatchNorm层
原文地址: https://www.cveoy.top/t/topic/fisA 著作权归作者所有。请勿转载和采集!