07 训练Tensorflow识别手写数字
2017-02-03 22:10
387 查看
打开Python Shell,输入以下代码:
执行该段代码,输出0.8002。训练10次得到80.02%的识别准确度,还是可以的。
说明:由于网络原因,手写数字图片可能无法下载,可以直接下载本人做好的程序,里面已经包含了手写图片资源和py脚本。
链接:http://pan.baidu.com/s/1cmYSXK 密码:va2z
参考资料:
1、《面向机器学习初学者的 MNIST 初级教程》:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
1 import tensorflow as tf 2 from tensorflow.examples.tutorials.mnist import input_data 3 4 # 获取数据(如果存在就读取,不存在就下载完再读取) 5 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 6 7 # 输入 8 x = tf.placeholder("float", [None, 784]) #输入占位符(每张手写数字784个像素点) 9 y_ = tf.placeholder("float", [None,10]) #输入占位符(这张手写数字具体代表的值,0-9对应矩阵的10个位置) 10 11 # 计算分类softmax会将xW+b分成10类,对应0-9 12 W = tf.Variable(tf.zeros([784,10])) #权重 13 b = tf.Variable(tf.zeros([10])) #偏置 14 y = tf.nn.softmax(tf.matmul(x,W) + b) # 输入矩阵x与权重矩阵W相乘,加上偏置矩阵b,然后求softmax(sigmoid函数升级版,可以分成多类) 15 16 # 计算偏差和 17 cross_entropy = -tf.reduce_sum(y_*tf.log(y)) 18 19 # 使用梯度下降法(步长0.01),来使偏差和最小 20 train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) 21 22 # 初始化变量 23 init = tf.global_variables_initializer() 24 sess = tf.Session() 25 sess.run(init) 26 27 for i in range(10): # 训练10次 28 batch_xs, batch_ys = mnist.train.next_batch(100) # 随机取100个手写数字图片 29 sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) # 执行梯度下降算法,输入值x:batch_xs,输入值y:batch_ys 30 31 # 计算训练精度 32 correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) 33 accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) 34 print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) #运行精度图,x和y_从测试手写图片中取值
执行该段代码,输出0.8002。训练10次得到80.02%的识别准确度,还是可以的。
说明:由于网络原因,手写数字图片可能无法下载,可以直接下载本人做好的程序,里面已经包含了手写图片资源和py脚本。
链接:http://pan.baidu.com/s/1cmYSXK 密码:va2z
参考资料:
1、《面向机器学习初学者的 MNIST 初级教程》:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
相关文章推荐
- 机器学习三(tensorflow 训练识别手写数字)
- TensorFlow - 手写数字识别 (模型训练完成后的使用)
- Tensorflow训练识别手写数字0-9
- TensorFlow用MNIST训练的模型来识别手写数字
- 训练Tensorflow识别手写数字 mnist
- Mnist 数据集的下载 以及 tensorflow 实现手写数字识别
- 基于tensorflow的MNIST手写数字识别(二)--入门篇
- 使用TensorFlow编写识别数字的CNN训练程序详解
- TensorFlow手写数字识别mnist example源码分析
- 修改tensorflow_android_demo以识别手写数字
- pycharm下tensorflow的调试,并实现mnist手写数字识别的例子
- tensorflow1.1/构建卷积神经网络识别手写数字
- Tensorflow卷积神经网络识别MINST手写数字
- Caffe手写数字训练识别 (4)
- 人工智能(1)用tensorflow识别MNIST手写数字数据集
- 【TensorFlow】MNIST手写数字识别
- Python实战 | TensorFlow之softmax的实现——手写数字识别
- 基于Tensorflow的android手写数字识别
- 使用tensorflow卷积神经网络实现mnist手写数字识别
- TensorFlow - 手写数字识别 (可视化)