机器学习Tensorflow基于MNIST数据集识别自己的手写数字(读取和测试自己的模型)

本文介绍了如何使用Tensorflow基于MNIST数据集训练深度学习模型,达到99.2%的准确率。通过解读代码、保存与加载模型、制作与测试28x28像素手写数字图片,分享了关键步骤和注意事项,包括使用3像素柔边画笔以模拟手写体特性,解决5和6识别混淆问题。
摘要由CSDN通过智能技术生成

更新:

2018.11.9:
我把代码,模型,测试图片放上来了,可以下载了,记得自行配置相关库
下载地址:
https://download.csdn.net/download/qq_38269418/10774623

另外,有个网址很有意思,以前忘记放上来了,可以帮你很好理解神经网络的模型!
http://scs.ryerson.ca/~aharley/vis/conv/

在这里插入图片描述
2018.12.5:
上面那个网址好像现在需要挂VPN了,不然打不开

以下为原博:

废话不多说,先上效果图

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述
整体来看,效果是非常不错的,模型的训练,参照官方代码mnist_deep.py,准确率是高达99.2%
这里写图片描述


那么,我是怎么实现的呢?

一.读懂卷积神经网络代码(至少得把程序跑通)

首先参照Tensorflow中文社区教程传送门:
http://www.tensorfly.cn/tfdoc/tutorials/mnist_pros.html
能在自己的环境中成功运行代码,具体代码的实现我就不在这里具体赘述了,因为关于代码的文章太多了,百度都能一大堆。博主是参照了Tensorflow中社区教程如图:
这里写图片描述
(注意一点:关于教程的print函数)
这里写图片描述
在博主用的Python3.6版本中,print已经成为了一个函数,而在Python2.7当中print不是一个函数,这里博主是需要加上括号。
所以根据自己所用的版本,更改这里,例如

print"Hello")  python3.6
print "Hello"   python2.7

如果你按照教程,将代码跑通之后,可以进行下一步了。那就是将模型保存,只需调用一个简单的函数,以下就是博主根据教程敲得完整代码:

from tensorflow.examples.tutorials.mnist import input_data

import tensorflow as tf

mnist = input_data.read_data_sets('F:/DEEPLEARN/Anaconda/Lib/site-packages/tensorflow/examples/tutorials/mnist/MNIST_data', one_hot=True) #MNIST数据集所在路径

x = tf.placeholder(tf.float32, [None, 784])

y_ = tf.placeholder(tf.float32, [None, 10])


def weight_variable(shape):
    initial = tf.truncated_normal(shape,stddev = 0.1)
    return tf.Variable(initial)

def bias_variable(shape):
    initial = tf.constant(0.1,shape = shape)
    return tf.Variable(initial)

def conv2d(x,W):
    return tf.nn.conv2d(x, W, strides = [1,1,1,1], padding = 'SAME')

def max_pool_2x2(x):
    return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')

W_conv1 = weight_variable(
  • 133
    点赞
  • 508
    收藏
    觉得还不错? 一键收藏
  • 100
    评论
评论 100
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值