
1.4 TensorFlow环境准备
TensorFlow站建立在“巨人”的肩膀上,它的正常运行需要依赖较多的底层工具。主要的安装方式有三类:一是通过Python包管理工具安装,二是通过Java安装;三是通过源代码进行编译安装;由于当前Python是进行科学计算的标配,因此我们通过Python包管理工具来进行安装。
TensorFlow在早期只支持Linux和Mac系统,在TensorFlow 0.12及后续版本中才添加对Windows系统的支持。TensorFlow的安装过程大体可分为准备Python环境、安装沙箱环境与安装TensorFlow三步。接下来,我们逐步实现不同环境下TensorFlow环境的搭建。
1.4.1 Windows环境
在官网上提供了5种安装TensorFlow的方法。
1)Pip安装:在本地环境中安装TensorFlow,在安装的过程中可能会升级以前安装的Python包,这会影响本机现有的Python程序。
2)Virtualenv安装:设置一个独立的目录,在其中安装TensorFlow,这样不会影响到本机上任何现有的Python程序。
3)Anaconda安装:在本机中安装并运行Anaconda,在Anaconda中创建虚拟环境来安装TensorFlow,这样不会影响本机上现有的Python程序。
4)Docker安装:在本机中建立一个与本机上所有其他程序隔离的Docker容器,在该容器中运行TensorFlow。
5)从源代码安装:通过构建pip下载源码来安装TensorFlow。
由于Anaconda是一个使用Python语言编写的用于科学计算的平台,因此它可以很方便地解决Python版本、第三方包安装等问题。为了后续实际开发的便捷性,推荐大家使用Anaconda方式进行安装。
1.Anaconda安装
Anaconda支持Linux、Mac和Windows系统,在Windows系统中的安装步骤如下。
(1)下载Anaconda
从Anaconda官网(https://www.anaconda.com/download/)选择对应的版本进行下载,如图1.3所示。软件不算小,大约有500MB。如果遇到某些原因,也可以选择国内的镜像地址进行下载,比如清华大学的镜像地址(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)。

图1.3 下载Anaconda
(2)安装Anaconda
和安装其他软件一样,如果没有什么特别的需求,基本选择默认安装即可,如图1.4所示。唯一需要注意的是,需要将Python 3.6添加到系统环境变量中。

图1.4 安装Anaconda
(3)验证是否安装成功
安装完毕后,在Windows的“开始”菜单中就能看到已成功安装的Anaconda了,如图1.5所示。

图1.5 验证Anaconda是否已成功安装
打开Anaconda Prompt,查看Anaconda的版本以及已安装的第三方依赖包,如图1.6所示。
01 conda –version
02 conda list

图1.6 Anaconda的第三方依赖包
在第三方依赖包中,可以看到已经安装NumPy、matpltlib、SymPy、scikit-image等常用的包。
(4)配置更新地址
由于Anaconda默认的代码仓库镜像地址是国外的镜像地址,因此下载速度比较慢。建议将镜像地址改为清华大学的开源软件镜像站,对Anaconda Prompt进行配置,如图1.7所示。
01 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
02 conda config --set show_channel_urls yes

图1.7 配置Anaconda更新地址
添加完成后,可以在当前配置信息中查看,输入:
conda info
关注channel URLs字段内容是否已成功添加清华大学提供的镜像地址,如图1.8所示。

图1.8 查看Anaconda更新地址
2.创建Anaconda沙箱环境
Anaconda可以创建自己的计算环境,这样可以将TensorFlow的环境与其他环境进行隔离,不必来回修改各种环境变量,也不必担心破坏之前的环境。创建步骤如下所示。
(1)创建Conda计算环境
在Anaconda Prompt中创建一个名为tensorflow的沙箱环境,如图1.9所示,输入:
conda create -n tensorflow python=3.6
根据不同版本的Python更改对应的版本参数。在创建过程中,如果出现下载速度慢甚至不成功的情况,可查看镜像地址是否配置成功。

图1.9 创建沙箱环境
创建成功后,可以打开Windows系统中的Anaconda Navigator,单击左侧的Environments,就可以看到tensorflow沙箱环境,如图1.10所示。

图1.10 查看沙箱环境
(2)激活tensorflow沙箱环境
如图1.1所示,在命令行中继续输入:
activate tensorflow

图1.11 激活沙箱环境
可以看到,用户名的前面有<tensorflow>标识。这实际上表明我们已经更换到名为tensorflow的沙箱环境中。
当不使用tensorflow时,需要使用deactivate tensorflow进行关闭。
3.安装TensorFlow的CPU版本
TensorFlow分为CPU版本和GPU版本。对于使用来说,主要区别在于运算速度,一般来说GPU速度更快。这是由于CPU和GPU针对的用途不一样,在最初的设计上也不一样。在GPU设计上用于图形图像的处理,在矩阵运算、数值计算,特别是浮点和并行计算上能优于CPU设计上数百倍的性能。在机器学习中,经常会用到许多的卷积运算、矩阵运算等,所以一般来说GPU速度更快。但是,当进行计算的数据集较小时,两者的速度差别并不大,甚至由于数据传输的问题,GPU可能更慢。
CPU版本的安装更简单,我们先讲解CPU版本的安装。
(1)使用pip进行安装
在TensorFlow的沙箱环境中,使用pip进行安装,输入:
pip install --ignore-installed --upgrade tensorflow
下载速度可能会比较慢,如果不在意是否为最新版本,则建议使用国内镜像地址进行安装。在https://mirrors.tuna.tsinghua.edu.cn/tensorflow/网页中找到需要安装的TensorFlow版本地址,例如:

安装成功后,在控制台中会显示安装成功的信息,如图1.12所示。

图1.12 安装TensorFlow
(2)验证是否成功
在控制台中,输入:

若最后能够成功输入“b' Hello, TensorFlow!'”,则表示安装成功,完成开发环境的准备工作。
(3)集成到IDE中
Python的集成开发工具很多,但是对于数据处理来说,可以选用Spyder,因为我们安装的Anaconda对它提供很好的支持。
打开Anaconda Navigator界面,单击左侧的Environments,查看是否已经安装Spyder。若未安装,则选中复选框,并单击右下角的Apply按钮进行安装,如图1.13所示。

图1.13 安装Spyder
在Anaconda Prompt界面中启动tensorflow沙箱环境,并运行Spyder(如图1.14所示),输入:
activate tensorflow
Spyder

图1.14 运行Spyder
等待一会儿就会出现Spyder界面,如图1.15所示。

图1.15 Spyder界面
其中,也需要验证是否关联了tensorflow沙箱环境。在编辑框中输入如下代码:
01 import tensorflow as tf
02 hello = tf.constant('Hello, TensorFlow!')
03 sess = tf.Session()
04 print(sess.run(hello))
运行后,若能够成功输入“b' Hello, TensorFlow!'”,则表示配置成功,如图1.16所示。

图1.16 运行Spyder
需要注意的是,一定要启用创建的tensorflow沙箱环境,并从该环境中打开Spyder,才能够关联到TensorFlow的开发环境,否则会出错。
4.安装TensorFlow的GPU版本
由于使用GPU进行机器学习运算时,效率更高,因此接下来我们讲解如何安装tensorflow的GPU版本。
安装时需要使用两个关联程序,分别是CUDA和cuDNN。由于TensorFlow是Google开发的,CUDA和cuDNN是NVIDIA开发的,因此在安装的版本选择和顺序上非常重要,否则会出现安装失败的情况。本书使用的是Python 3.6、TensorFlow 1.3、CUDA 8.0、cuDNN 6.0。下面详细介绍安装过程。
(1)安装CUDA
由于TensorFlow的GPU版本依赖于CUDA,因此我们首先查看使用的GPU是否支持CUDA加速,一般来说NVIDIA都是支持的。我们可以通过官网进行查询,也可以通过在NVIDIA的控制面板中,单击“系统信息”进行查询。在“系统信息”对话框的“组件”选项卡中找到NVCUDA.DLL,只要能够找到NVCUDA.DLL组件,就代表支持CUDA,如图1.17所示。

图1.17 CUDA系统信息
从NVIDIA官网可以下载CUDA,在https://developer.nvidia.com/cuda-toolkit-archive上有所有的历史版本。由于TensorFlow的更新不一定对应到CUDA的最新版本,因此建议下载已通过验证的版本组合。在其中选择对应的操作系统、硬件支持类型、操作系统版本和安装类型后,再下载安装文件,如图1.18所示。

图1.18 CUDA版本选择
下载完毕后,和安装其他软件一样,如果没有什么特别的需求,基本选择默认安装即可。
(2)下载cuDNN
cuDNN是连接TensorFlow和CUDA的纽带,我们可以从NVIDIA官网下载cuDNN,网址为https://developer.nvidia.com/rdp/form/cudnn-download-survey。要先进行用户注册并填写调查问卷,再选择与上一步安装的CUDA版本相匹配的cuDNN版本,如图1.19所示。

图1.19 下载cuDNN
(3)配置cuDNN
下载cuDNN后解压,其文件夹下有3个子文件夹,分别是bin、lib和include。找到CUDA的安装路径,若未做修改,则一般的路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。将这3个子文件夹复制到该目录中,与CUDA已有的bin、lib和include子文件夹进行合并。
查看Windows的环境变量是否已成功添加相关程序路径。在“系统变量”中,找到“Path”变量,查看其值是否包含CUDA文件的路径,例如:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp
如果未包含,请将相关路径添加到“Path”变量中。
(4)安装GPU版本
为了保证使用的环境与CPU版本的环境相隔离,我们重新创建一个沙箱环境,进行GPU版本的安装。在Anaconda Prompt中依次输入:
01 conda create -n tensorflowGPU python=3.6
02 activate tensorflowGPU
03 pip install tensorflow-gpu==1.3.0
下载速度可能会比较慢。如果不在意是否为最新版本,可以使用国内镜像地址进行安装。在https://mirrors.tuna.tsinghua.edu.cn/TensorFlow/网页上找到需要安装的TensorFlow对应版本的地址,安装成功后,在控制台中会显示有关安装成功的信息。
(5)验证是否成功
在控制台中,输入:

如果能够成功输入“b' Hello, TensorFlow!'”,则表示安装成功,完成了开发环境的准备工作。
最后,参照安装Spyder开发环境的过程,对Spyder开发环境进行安装。
1.4.2 Linux环境
前面详细讲解了Windows环境下TensorFlow的安装过程。在Linux环境下,TensorFlow的安装过程与Windows环境下类似,分为三步:(1)安装Anaconda;(2)建立Anaconda沙箱环境;(3)安装TensorFlow。
(1)安装Anaconda
首先从Anaconda官网(https://www.anaconda.com/download/)选择对应的版本进行下载。
然后打开终端,输入相应的命令进行安装,例如:
bash /home/TensorFlow/Downloads/Anaconda2-5.1.0-Linux-x86_64.sh
(2)建立Anaconda沙箱环境
重新打开终端后,输入conda创建命令,例如:
conda create -n tensorflow python=3.6
(3)安装TensorFlow
首先激化创建的沙箱环境,输入命令:
source activate tensorflow
然后在tensorflow沙箱环境中,使用pip进行安装,输入:
pip install --ignore-installed --upgrade tensorflow
完成安装后,同样在控制台中输入如下代码:

如果最后能够成功输入“b' Hello, TensorFlow!'”,则表示安装成功,完成了开发环境的准备工作。
需要注意的是,每次需要激活tensorflow沙箱环境后才能正常运行tensorflow程序。
1.4.3 Mac OS环境
使用Mac OS进行环境配置时,可以对照Linux下的安装过程,首先安装Anaconda,然后建立Anaconda沙箱环境,最后完成TensorFlow的安装。
shell $ conda create -n tensorflow
shell $ source activate tensorflow
shell (tensorflow)$ pip install l --ignore-installed --upgrade tensorflow