深入MNIST专家
TensorFlow是一个强大的库能够运行大规模的数学计算。其中一个任务就是实施和训练深度神经网络。在本教程中,我们将在构建一个深卷积MNIST分类器的同时学习TensorFlow模型的基本构建模块。
关于这个教程:
教程的第一部分,解释了mnist_softmax.py里面的代码,mnist_softmax.py是一个基本的Tensorflow的模型实现。第二部分将讲述一些办法来提高模型的准确性。
你可以跟着把本教程的每个代码段复制到Python的环境中,也可以从mnist_deep.py下载完整的深度网络实现。
本教程要完成的内容:
创建一个用于识别MNIST手写数字模型的softmax回归函数,基于查看图片的每个像素点。
使用Tensorflow来通过“看”上千张示例图片的办法来训练模型识别数字(并运行我们的第一个Tensorflow会话)
用测试数据来检查我们的模型的准确率
建造,训练,和测试一个多层卷积神经网络来提高这个结果
安装:
在创建模型之前,我们首先加载MNIST数据集,同时开始一个TensorFlow会话。
加载MNIST数据集:
如果你是从本教程复制粘贴代码,从这里开始,这两行代码将会自动下载和读取数据集。
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
这里的
mnist
是一个轻量级的类,用Numpy数组的方式存储了训练、验证和测试数据。它还提供了一个迭代数据最小化的功能,我们接下来会用到。
开始TensorFlow互动会话
TensorFlow 依赖一个高效的C++后端进行运算。这种连接到它的后端的方式叫做会话。TensorFlow程序的常见用法是首先创建一个模型,然后在会话中启动它.
这里我们采用方便的InteractiveSeesion类,它可以让TensorFlow更加灵活的构建你的代码。它允许你在构建计算模型进行运行这个模型时进行一些插入操作。当你在比如Ipython这样的运行环境时特别方便。如果你不打算使用InteractiveSession,你应该在开始会话前构建好计算模型然后运行模型。
import tensorflow as tf
sess = tf.InteractiveSession()