python用用TensorFlow做图像识别的实现做图像识别的实现
一、一、TensorFlow简介简介
TensorFlow是由谷歌开发的一套机器学习的工具,使用方法很简单,只需要输入训练数据位置,设定参数和优化方法
等,TensorFlow就可以将优化结果显示出来,节省了很大量的编程时间,TensorFlow的功能很多很强大,这边挑选了一个比
较简单实现的方法,就是利用TensorFlow的逻辑回归算法对数据库中的手写数字做识别,让机器找出规律,然后再导入新的
数字让机器识别。
二、流程介绍二、流程介绍
上图是TensorFlow的流程,可以看到一开始要先将参数初始化,然后导入训练数据,计算偏差,然后修正参数,再导入新的
训练数据,不断重复,当数据量越大,理论上参数就会越准确,不过也要注意不可训练过度。
三、导入数据三、导入数据
数据可进入MNIST数据库 (Mixed National Institute of Standards and Technology database),这是一个开放的数据库,里面
有许多免费的训练数据可以提供下载,这次我们要下载的是手写的阿拉伯数字,为什么要阿拉伯数字呢?1、因为结果少,只
有十个,比较好训练 2、图片的容量小,不占空间,下面是部分的训练数据案例
TensorFlow可以直接下载MNIST上的训练数据,并将它导入使用,下面为导入数据的代码
from tensorflow.examples.tutorials.mnist import input_data
MNIST = input_data.read_data_sets("/data/mnist", one_hot=True)
四、设定参数四、设定参数
接下来就是在TensorFlow里设定逻辑回归的参数,我们知道回归的公式为Y=w*X+b,X为输入,Y为计算结果,w为权重参
数,b为修正参数,其中w和b就是我们要训练修正的参数,但训练里要怎么判断计算结果好坏呢?就是要判断计算出来的Y和
实际的Y损失值(loss)是多少,并尽量减少loss,这边我们使用softmax函数来计算,softmax函数在计算多类别分类上的表
现比较好,有兴趣可以百度一下,这边就不展开说明了,下面为参数设定
X = tf.placeholder(tf.float32, [batch_size, 784], name="image")
Y = tf.placeholder(tf.float32, [batch_size, 10], name="label")
X为输入的图片,图片大小为784K,Y为实际结果,总共有十个结果(数字0-9)
w = tf.Variable(tf.random_normal(shape=[784, 10], stddev=0.01), name="weights")
评论0
最新资源