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