CNN训练的MNIST数据集在数字识别方面表现不佳

时间:2016-11-16 08:20:42

标签: machine-learning tensorflow conv-neural-network mnist

我使用CNN数据集训练tensorflowMNIST)进行数字识别。 测试集的准确度接近98%

我想用自己创建的数据来预测数字,结果很糟糕。

我对我写的图片做了什么?

我将每个数字分割出来并转换为灰度,并将图像调整为28x28并将其输入模型。

为什么我在数据集上得到如此低的准确度呢?在测试集上如此高精度?

我是否应对图像进行其他修改?

修改

以下是图片的link和一些示例:

image of digit 7 digit 5 digit 9 digit 6

2 个答案:

答案 0 :(得分:0)

排除错误和明显的错误,我的猜测是你的问题是你用一种与你的训练集太不一样的方式捕捉你的手写数字。

捕获数据时,您应尽量模拟用于创建MNIST数据集的过程:

来自oficial MNIST dataset website

  

来自NIST的原始黑白(双层)图像是大小   标准化以适应20x20像素的盒子,同时保留它们的外观   比。由此产生的图像包含灰度级   归一化算法使用的抗锯齿技术。该   通过计算质心,图像以28x28图像为中心   像素,并平移图像以定位此点   位于28x28场地的中心。

如果您的数据在训练和测试阶段有不同的处理,那么您的模型无法从列车数据推广到测试数据。

所以我有两个建议:

  1. 尝试捕获并处理您的数字图像,使它们看起来尽可能与MNIST数据集相似;
  2. 将一些示例添加到您的训练数据中,以便您的模型训练类似于您正在分类的图像;

答案 1 :(得分:0)

对于那些基于CNN的MNIST模型质量仍然较差的人:

https://github.com/christiansoe/mnist_draw_test

归一化是关键。