怎么使用Keras完成CNN模型搭建


本篇文章给大家分享的是有关怎么使用Keras完成CNN模型搭建,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。对于图像分类任务而言,卷积神经网络(CNN)是目前最优的网络结构,没有之一。在面部识别、自动驾驶、物体检测等领域,CNN被广泛使用,并都取得了最优性能。对于绝大多数深度学习新手而言,数字手写体识别任务可能是第一个上手的项目,网络上也充斥着各种各样的成熟工具箱的相关代码,新手在利用相关工具箱跑一遍程序后就能立刻得到很好的结果,这时候获得的感受只有一个——深度学习真神奇,却没能真正了解整个算法的具体流程。小编将利用Keras和TensorFlow设计一个简单的二维卷积神经网络(CNN)模型,手把手教你用代码完成MNIST数字识别任务,便于理解深度学习的整个流程。

模型使用的MNIST数据集,该数据集是目前最大的数字手写体数据集(0~9),总共包含60,000张训练图像和10,000张测试图像,每张图像的大小为28×28,灰度图。第一步是加载数据集,可以通过Keras API完成: 上述代码中,X_train表示训练数据集,总共60,000张28×28大小的手写体图像,y_train表示训练图像对应的标签。同理,X_test表示测试数据集,总共10,000张28×28大小的手写体图像,y_test表示测试图像对应的标签。下面对数据集部分数据进行可视化,以便更好地了解构建的模型深度学习模型的目的。 对图像信息进行必要的处理之后,标签数据y_train和y_test被转换为分类格式(向量形式),即标签‘3’被转换为向量[ 0,0,0,1,0,0,0,0,0,0]用于建模,标签向量非零的位置减一(从0开始)后表示该图像的具体标签,即若图像的标签向量在下标5处不为0,则表示该图像代表数字‘4’。 在数据准备好提供给模型后,需要定义模型的体系结构并使用必要的优化函数,损失函数和性能指标进行编译。
构建模型遵循的体系结构是经典卷积神经网络,分别含有2个卷积层,之后是连接全连接层和softmax分类器。如果你对每层的作用不熟悉的话,建议学习CS231课程。
在最大池化层和全连接层之后,模型中引入dropout作为正则化来减少过拟合问题。 模型搭建好之后,需要进行编译。在本文使用categorical_crossentropy多分类损失函数。由于所有的标签都具有相似的权重,因此将其作为性能指标,并使用AdaDelta梯度下降技术来优化模型参数。 在定义和编译模型架构之后,需要使用训练数据对模型进行训练,以便能够识别手写数字。即使用X_train和y_train来拟合模型。 Epoch表示对所有训练样本进行一个前向传播过程和一个反向传播过程,Batch_Size表示每次前向过程和反向过程时处理的训练样本数,训练输出如下所示:

可以看到,测试准确性高达99%+,这也意味着该模型对于预测训练得很好。对整个过程训练和测试过程进行可视化,即画出训练和测试的准确曲线与损失函数曲线,如下所示。从图中可以看到,随着训练迭代次数的增加,模型在训练和测试数据上的损失和准确性趋于一致,模型最终趋于稳定。

模型训练好后需要保存训练好的参数,以便下次直接调用。模型的体系结构或结构将存储在json文件中,权重将以hdf5文件格式存储。 因此,保存好的模型可以之后进行重复使用或轻易地迁移到其他应用场景中。以上就是怎么使用Keras完成CNN模型搭建,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多 香港云主机详情敬请关注开发云行业资讯频道。

相关推荐: Win10开始菜单的锁定功能怎么找回

这篇文章主要讲解了“Win10开始菜单的锁定功能怎么找 香港云主机回”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Win10开始菜单的锁定功能怎么找回”吧!解决方法:1、首先可以在开始菜单按钮上直接右击,并直接…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/14 15:11
下一篇 08/14 15:11

相关推荐