Keras – 卷积神经网络
让我们把模型从MPL修改为 卷积神经网络(CNN) ,用于我们先前的数字识别问题。
CNN可以表示为:-
该模型的核心特征如下
- 输入层由(1,8,28)个值组成。
-
第一层, Conv2D 由32个过滤器和’relu’激活函数组成,核大小为(3,3)。
-
第二层, Conv2D 由64个过滤器和’relu’激活函数组成,核大小为(3,3)。
-
第三层, MaxPooling 的池大小为(2,2)。
-
第五层, Flatten 用于将所有的输入平铺到单维。
-
第六层, Dense 由128个神经元和’relu’激活函数组成。
-
第七层, Dropout 的值为0.5。
-
第八层和最后一层由10个神经元和’softmax’激活函数组成。
-
使用 categorical_crossentropy 作为损失函数。
-
使用 Adadelta() 作为优化器。
-
使用 准确度 作为衡量标准。
-
使用128作为批次大小。
-
使用20次作为历时。
第1步–导入模块
让我们导入必要的模块。
第2步 – 加载数据
让我们导入mnist数据集。
第3步 – 处理数据
让我们根据我们的模型来改变数据集,这样它就可以被送入我们的模型。
除了输入数据的形状和图像格式的配置,数据处理与MPL模型类似。
第4步 – 创建模型
让我们创建一个实际的模型。
第5步 – 编译模型
让我们使用选定的损失函数、优化器和度量标准来编译模型。
第6步 – 训练模型
让我们使用 fit() 方法训练模型。
执行应用程序将输出以下信息—
第7步 – 评估模型
让我们使用测试数据来评估该模型。
执行上述代码将输出以下信息—
测试准确率为99.22%。我们已经创建了一个最佳模型来识别手写数字。
第8步 – 预测
最后,从图像中预测数字,如下所示
上述应用程序的输出如下 −
两个阵列的输出是相同的,这表明我们的模型正确地预测了前五幅图像。