通过mnist.npz进行手写数字识别训练后,在使用自己的手写数字进行验证时出现识别准确率低的一种可能原因

TensorFlow 2.0 (五) - mnist手写数字识别(CNN卷积神经网络)
在按照上文给出的训练方法进行手写数字识别训练之后,在进行验证时出现识别准确率低的问题
直到阅读了深入浅出机器学习MNIST实战(三)一文后发现,文中使用了不同的读取验证图片的方式,而且使用此方法后,识别准确率明显提高。
其中验证图片读取代码如下:

if False:
    img = Image.open(image_path).convert('L')
    flatten_img = np.reshape(img, (28, 28, 1))
    x = np.array([1 - flatten_img])
    print(x.shape)  #(1, 28, 28, 1)
else:
    img = cv2.imread(image_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    rows, cols = img.shape[0:2]
    for i in range(rows):  # 反转一下黑白
        for j in range(rows):
            img[i][j] = 255 - img[i][j]
            # print(i,j)
    x = np.reshape(img,(1,28,28,1))
#endif

通过比较可以发现两种方法对于反转黑白的代码有明显区别

x = np.array([1 - flatten_img])
img[i][j] = 255 - img[i][j]

图片在flatten_img的取值应该是0-255,因此反转黑白应该使用

x = np.array([255 - flatten_img])

修改后进行验证,识别概率明显提升,至此该问题有效解决。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值