安装
注意: 中文文档中所安装的版本已经过期,请使用官方安装指南安装!
文档地址(仅做内容参考,其中的下载地址均已过期或老旧):Tensorflow中文文档
首先安装pip
:
由于国内下载pip
上的软件包缓慢,所以使用国内源手动安装一部分:
然后使用以下命令安装tensorflow
:
安装完毕后测试是否可以正常使用,打开一个python
终端:
至此,软件安装完毕,有任何问题可以查看官方安装指南,看是否有解决办法。
MNIST训练
下载数据
Tensorflow
的代码仓库已经从 GoogleSource 迁移到了 Github,所以指南上提供的链接已经下载不了了。
我建议直接下载整个仓库,因为后面教程需要的所有代码也在里面,后面就不用再下了。
克隆 TensorFlow 仓库:git clone git@github.com:tensorflow/tensorflow.git
下载完毕后进入tensorflow/examples/tutorials/mnist/
目录,这里存放着MNIST
的所有代码。
在当前目录创建mymnist.py
文件,内容为:
然后运行该文件,即会自动下载并解压数据。
模型训练
准备工作
阅读这段文字时,我会假设你已经完整的看了一遍
MNIST入门
,并将文章中的代码运行了一遍。以下是完整的’mymnist.py’代码:
运行后会得到一个0.91
左右的输出。
数据集
训练集里面的数据包括图片和标签,例如手写的图片1
,和对应的标签1
。训练集的图片是一个28x28的图片,这里我们将其转换为一维的向量数据。我默认认为数据是按照列的方式展开,即从上到下,从左到右展开。
训练集的标签是一个10维向量,用来表示数字[0-9],例如数字 2 ,就是([0,0,1,0,0,0,0,0,0,0])。
Softmax回归
为了得到一张给定图片属于某个特定数字类的证据(evidence),我们对图片像素值进行加权求和。如果这个像素具有很强的证据说明这张图片不属于该类,那么相应的权值为负数,相反如果这个像素拥有有利的证据支持这张图片属于这个类,那么权值是正数。
例如说1
,中间有连续向下的像素则说明很可能不是0
,不是9
等。在实际的数据中则是:
在图像二维矩阵中的第[8-10]行或者是其它任意行有连续的1
,在我们展开后的训练集中则是有大量的连续的1
。这个就是一个很强的证据说明这个图片是数字1
。
问题
input_data.py
无法使用
当尝试运行input_data.py
时提示错误信息:1from tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets ImportError: No module named contrib.learn.python.learn.datasets.mnist
原因是因为你安装的 Tensorflow 版本过于老旧,请下载最新版本。
使用 pip show tensorflow
可以查看当前版本。具体安装方法请查看官方安装指南或着本文章的安装部分,以官方为准。请先卸载旧版本(sudo pip uninstall tensorflow
)再安装新版本。