第三次作业:卷积神经网络

一、MNIST数据集分类
卷积神经网络

1、加载数据
PyTorch包含部分常用数据集,调用 torchvision.datasets可以从网络下载到本地使用。 

显示已下载的数据集中的部分图像进行查看: 
2、创建网络

定义训练并测试函数

3、在小型全连接网络上训练
3、在卷积神经网络上训练
5、打乱像素顺序再次在两个网络上训练与测试
首先是随机打乱像素顺序后的图像:
重新定义训练与测试函数: 

在全连接网络上训练与测试:
在卷积神经网络上训练与测试:
二、CIFAR10数据集分类
先下载CIFAR10到本地:

展示CIFAR10中的部分图片:

定义网络、损失函数和优化器:
进行网络训练:

从测试集中挑出8张照片:

把这8张图片输入模型,查看是识别结果:
可以看出第一个、第六个都识别错误了,接下来是这个网络在整个数据集上识别的结果:
可以看到整体的准确率为63%,接下来我们通过一些方法提高识别准确率。
三、使用VGG16对CIFAR10数据集分类
1、定义dataloader
首先下载安装文件:
2、VGG网络定义

3、网络训练

出现了错误,经查询将cfg改为self.cfg,但是错误未解决,又从同学的博客中学习到将参数调整为512,最后解决问题。

4、测试验证准确率
进行训练:


测试准确率:

可以发现使用VGG网络后,准确率从原先的63%是提升到了 83.14%,效果十分显著。

浙公网安备 33010602011771号