每次都从零开始全部靠自己去建立一个深层神经网络模型并不现实,借助现在众多流行的深度学习框架,能够高效地实现这些模型。TensorFlow便是其中之一。
TensorFlow
TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,是一个使用数据流图进行数值计算的开源软件库。其命名来源于本身的运行原理,Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow便意为张量从流图的一端流动到另一端计算过程。TensorFlow 中包含了一款强大的线性代数编译器XLA,这可以帮助TensorFlow代码在嵌入式处理器、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)和其他硬件平台上尽可能快速地运行。
版本选择
TensorFlow分为CPU版和GPU版。GPU版需要有NVIDIA显卡的支持,TensorFlow程序通常在GPU上的运行速度明显高于CPU,查看设备是否配备了NVIDIA显卡方法另寻。
如果设备配备了NVIDIA显卡,还需根据显卡的具体型号,到NVIDIA官方文档上找到你的GPU,查看其该型号的N卡是否支持CUDA(Compute Unified Device Architecture),以及CUDA算力(Computer Capability)。TensorFlow要求GPU的CUDA计算能力值达到3.0以上,否则比直接CPU上运算的效果相差不大。一些年份较早或比较低端的显卡达不到这个要求,这种情况下即使安装了GPU版本也还是会调用CPU运算,不会调用GPU。
安装
TensorFlow的Python版本一般直接使用pip命令进行安装,CPU版本的pip安装命令为:
pip install --upgrade tensorflow
GPU版本为:
pip install --upgrade tensorflow-gpu
安装GPU版本后想要用N卡正常运行,需要先安装CUDA® Toolkit和cuDNN,根据各自的平台进行下载安装。而且需要注意,下载安装的版本务必按照安装好的TensorFlow支持的版本来。
测试
安装完成后,打开在命令行或终端中激活Python,输入以下代码:
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
安装无误的话,最后将打印出熟悉的“Hello, TensorFlow!”。此外,如果安装的是GPU版,输入第三行代码后将显示你的GPU配置信息。
实现MNIST手写数字识别
MNIST数据集
MNIST(Mixed National Institute of Standards and Technology database)是一个入门级的计算机视觉数据集,其中包含各种手写数字图片:
上面的四张图的标签(labels)分别为5,0,4,1。
MNIST数据集被分为三部分:55000个训练样本(mnist.train),10000个测试样本(mnist.test),5000个验证集(mnist.validation)。每个样本由两部分组成,一个大小为28*28的手写数字图片像素值矩阵 x x 以及它的标签 ,标签 y y 是用one-hot向量表示的,一张数字图片中的真实数字值n,将表示成一个只在第n维度的数字为1的10位维向量。例如,标签3用one—hot向量表示为 。one-hot编码多用在多分类问题上。
则整个训练样本中