网站首页 > 技术文章 正文
卷积神经网络(CNN)是当前用于图像分类任务的最先进的体系结构。无论是面部识别、自动驾驶汽车还是物体检测,CNN都被广泛使用。在这篇文章中,我们设计了一个简单的二维卷积神经网络(CNN)模型,该模型使用具有张量流后端的keras,用于众所周知的MNIST数字识别任务。整个工作流程可以是:
准备数据
建立和编译模型
训练和评估模型
将模型保存到磁盘以供重用
准备数据
这里使用的数据集是如上所述的MNIST数据集。 MNIST数据库(修改后的国家标准与技术研究院数据库)是手写数字(0至9)的大型数据库。该数据库包含60,000个训练图像和10,000个每个大小为28x28的测试图像。第一步是加载数据集,这可以通过keras api轻松完成。
从这里可以看出,在左上角存储的图像'5'是X_train [0],y_train [0]包含标签’5'。我们的深度学习模式应该只能够手写图像并预测写入的实际数字。
现在,为了准备数据,我们需要对图像进行一些处理,如调整图像大小,对像素值进行归一化等。
在对图像信息进行必要的处理之后,标签数据即y_train和y_test需要被转换为分类格式,如标签'3'应该被转换为向量[ 0,0,0]用于建模。
建立和编译模型
在数据准备好提供给模型后,我们需要定义模型的体系结构并使用必要的优化函数、损失函数和性能指标进行编译。
这里遵循的体系结构是2个卷积层,接着是合并层,分别是完全连接层和softmax层。在每个卷积层使用多个滤波器,用于不同类型的特征提取。一个直观的解释是,如果第一个过滤器有助于检测图像中的直线,第二个过滤器将有助于检测圆圈等等。每层技术执行的解释将成为即将发布的文章的一部分。在maxpooling和完全连接层之后,在我们的模型中引入dropout作为正则化来减少过度拟合问题。
在maxpooling和完全连接层之后,在我们的模型中引入dropout作为正则化来减少过度拟合问题。
在定义了模型的体系结构之后,需要编译模型。在这里,我们使用categorical_crossentropy损失函数,因为它是一个多类分类问题。由于所有标签都具有相似的权重,因此我们更愿意将其作为性能指标。使用称为AdaDelta的流行梯度下降技术来优化模型参数。
训练和评估模型
在定义和编译模型架构之后,需要使用训练数据对模型进行训练,以便能够识别手写数字。因此我们将用X_train和y_train来拟合模型。
这里,一个时代意味着所有训练样本的前向和后向传递。批量大小意味着一次前进/后退过程中训练样本的数量。训练输出是:
现在,训练好的模型需要根据性能进行评估。
测试准确性99%+意味着该模型对于预测训练良好。如果我们将整个训练日志形象化,那么随着更多数量的时期,模型在训练和测试数据上的损失和准确性趋于一致,从而使模型变得稳定。
将模型保存到磁盘以供重用
现在,训练好的模型需要序列化。模型的体系结构或结构将存储在json文件中,权重将以hdf5文件格式存储。
因此,保存的模型可以稍后重复使用或轻松移植到其他环境。在即将发布的文章中,我们将看到如何在生产环境中部署这种训练好的模型。
享受深度学习!
猜你喜欢
- 2024-10-12 神经网络训练模型 神经网络训练好的模型怎么用
- 2024-10-12 人工智能Keras的第一个图像分类器(CNN卷积神经网络的图片识别)
- 2024-10-12 使用Keras进行深度学习(二):CNN讲解及实践
- 2024-10-12 pytorch利用CNN卷积神经网络来识别手写数字
- 2024-10-12 Tensorflow入门教程-第五课:TensorFlow中的卷积神经网络(CNN)
- 2024-10-12 7 大类卷积神经网络(CNN)创新综述
- 2024-10-12 卷积神经网络(CNN)简要教程 卷积神经网络代码入门
- 2024-10-12 测试开发 | 卷积神经网络(CNN):图像识别的骨干
- 2024-10-12 C++ 中的卷积神经网络 (CNN) c++实现卷积神经网络
- 2024-10-12 使用SVC支持向量机算法来进行人脸识别的CNN神经网络训练
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)