我使用CNN
数据集训练了tensorflow
(在MNIST
上)进行数字识别。
测试仪的精度接近98%
。
我想使用自己创建的数据来预测数字,结果很糟糕。
我对我写的图像做了什么?
我将每个数字分段并转换为灰度,然后将图像调整为28x28
的大小并将其输入模型。
为什么我的数据集的准确性如此之低,而测试集的准确性却如此之高?
我应该对图像进行其他修改吗?
编辑:
这是图像的link和一些示例:
最佳答案
除了错误和明显的错误之外,我的猜测是您的问题是您正在以与训练集完全不同的方式捕获手写数字。
捕获数据时,您应该尝试尽可能地模仿用于创建MNIST数据集的过程:
从oficial MNIST dataset website:
NIST的原始黑白(双水平)图像尺寸
标准化以适合20x20像素的框,同时保留其长宽比
比。结果图像包含灰度级,这是由于
归一化算法使用的抗锯齿技术。的
通过计算质心将图像定位在28x28图像的中心
像素,然后平移图像以定位此点
在28x28字段的中心。
如果您的数据在训练和测试阶段的处理方式不同,则您的模型将无法从训练数据推广到测试数据。
因此,我为您提供两个建议:
尝试捕获和处理您的数字图像,以使其看起来与MNIST数据集尽可能相似;
在训练数据中添加一些示例,以使模型可以在与您要分类的图像相似的图像上进行训练;
关于machine-learning - 在MNIST数据集上训练的CNN导致数字识别性能不佳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40627099/