卷积神经网络

部分学习代码

一、MNIST 数据集分类

加载数据并显示数据集中的部分图像

下图为创建网络后,在小型全连接网络上训练的结果

 这是在卷积神经网络上训练的结果

 之后随机打乱像素

再次进行训练和测试

  全连接网络结果

  

   卷积神经网络结果

  

体会:含有相同参数的 CNN 效果要明显优于简单的全连接网络,是因为 CNN 能够通过卷积和池化等手段更好的挖掘图像中的信息;但是在打乱像素之后,全连接网络几乎不受影响,而 CNN 的准确率明显下降,因为卷积和池化是通过集中的像素的一些特征来发挥作用的,将像素顺序完全打乱之后无法继续发挥作用,故准效果明显下降。

 

二、CIFAR10 数据集分类

首先得到 CIFAR10 里面的一些图片:

 接下来定义网络,损失函数和优化器并训练网络

然后从测试集中取出8张图片,并把图片输入模型,看看CNN对这些图片的识别结果

 上图中可以看出识别是有一些错误的,每次运行都会出现些许的错误,但总归来说正确率也是达到了百分之六十多

 

三、使用 VGG16 对 CIFAR10 分类

使用VGG16对CIFAR10进行分类

定义 dataloader和VGG网络

进行网络训练

  测试正确率

这次 准确率并没有明显提高,检查后发现前面有一个变量错误,导致网络放到GPU这一个步骤没有成功,改过之后如下

 

 

疑问:可以看出通过使用VGG,准确率有了明显提高。但这次网络训练所需要的时间明显增加,如上上图,运行了将近三个半小时,有什么方法可以提速吗?

posted @ 2021-10-17 17:13  二狗*  阅读(117)  评论(0)    收藏  举报