
1.2 TensorFlow的环境搭建
本节介绍在几个主要的平台上,如何安装TensorFlow,以及简单的运行测试。
1.2.1 安装环境介绍
目前TensorFlow社区推荐的环境是Ubuntu,但是TensorFlow同时支持Mac、Windows上的安装部署。
因为深度学习计算过程大量的操作是向量和矩阵的计算,而GPU在向量和矩阵计算方面比CPU有一个数量级的速度提升,所以机器学习在GPU上运算效率更高,推荐在装有GPU的机器上运行TensorFlow程序。
1.CUDA简介
显卡厂商NVIDIA推出的运算平台CUDA(Compute Unified Device Architecture),是一种通用的并行计算架构,该架构使GPU能够解决复杂的计算问题,它包含了CUDA指令集及GPU内部的并行计算引擎。提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问,从而给大规模的数据计算应用提供了一种比GPU更加强大的计算能力。程序开发人员通过C语言,利用CUDA的指令接口,就可以编写CUDA架构的程序了。
2.CuDNN简介
CuDNN的全称是CUDA Deep Neural Network library,CuDNN是专门针对深度学习框架设计的一套GPU计算加速方案,最新版本的CuDNN提供了对深度神经网络中的向前向后的卷积、池化及RNN的性能优化。目前大部分深度学习框架都支持CuDNN。
目前包括TensorFlow在内的大部分深度学习框架,都支持CUDA。所以,为了让我们的深度神经网络的程序在TensorFlow上运行得更好,推荐配置至少一块支持CUDA和CuDNN的NVIDIA的显卡。
3.查看机器的GPU信息
下面从Windows系统上查看机器的GPU信息。
在“运行”对话框中输入“dxdiag”命令,如图1-2所示,然后单击“确定”按钮,此时会打开“DirectX诊断工具”对话框。单击其中的“显示”标签页,可以查看Windows的显卡信息,如图1-3所示。

图1-2 输入“dxdiag”命令

图1-3 查看Windows的显卡信息
由图1-3可以看到,这个Windows上的芯片类型是“Intel(R)HD Graphics Family”。
1.2.2 安装TensorFlow
TensorFlow的Python语言API支持Python3.3以上的版本。GPU版本推荐使用Cuda Toolkit 8.0和CuDNN v5.版本,Cuda和CuDNN的其他版本也支持,不过需要用户用编译源码的方式安装。
1.安装pip
pip是用来安装和管理Python包的管理工具,在此先介绍它在各个平台上的安装方法。在安装pip之前,请先自行安装好Python。
1)Ubuntu/Linux
在Ubuntu/Linux系统上安装pip的命令:

2)Mac
在Mac系统上安装pip的命令:

3)Windows
在Windows系统上安装pip的命令:

在Windows环境变量的PATH变量的最后添加“\Python安装目录\Scripts”。
目前,TensorFlow在Windows上只支持64位的Python3.6.5版本。
2.通过pip安装TensorFlow
TensorFlow已经把最新版本的安装程序上传到了Pypi,所以我们可以通过最简单的方式来安装TensorFlow(要求pip版本在8.1或者更高)。
安装支持GPU版本的TensorFlow的命令如下:

在Windows系统上安装CPU版本(0.12版本)的命令如下:

TensorFlow在Windows上依赖MSVCP140.DLL,这里需要提前安装Visual C++2015 redistributable(x64位),其下载地址为https://www.microsoft.com/en-us/download/details.aspx?id=53587,下载文件为vc_redist.x64.exe。
3.源码编译安装TensorFlow
有时候,我们需要单独自定义一下TensorFlow的安装,如我们的CUDA是7.5版本的,这时可能需要用户自己编译源码进行安装。在此只介绍在Ubuntu系统上如何通过源码编译安装。
1)从git上下载源码
从git上下载源码的地址:

2)安装Bazel
Bazel是Google开源的一套自动化构建工具,可以通过源的方式安装,也可以通过编译源码安装,这里只介绍最简单的通过源的安装方式。
首先,安装JDK8:

然后,添加Bazel源的地址:

3)编码TensorFlow
编译TensorFlow的命令:

注意,在编译安装的过程中可能出现一些其他依赖需要手动安装,相关命令如下:

1.2.3 Cuda和CuDNN的安装
如果我们要使用TensorFlow的GPU版本,则还需要安装Cuda和CuDNN。
1.NVIDIA驱动安装
NVIDIA驱动安装的下载地址:

其实现驱动安装的命令:

2.Cuda安装
根据自己的系统选择不同版本的Cuda下载安装,其下载地址:

安装过程会提示一些选项,需要注意的是,在前面已经安装了NVIDIA的驱动,所以在提示是否需要安装NVIDIA Accelerated Graphics Driver的时候选择n。
选择参考如下:

安装成功后,提示我们需要把路径添加到环境变量中:

3.CuDNN安装
根据自己的系统环境和Cuda的版本,选择下载CuDNN。
CuDNN的下载地址:

其安装过程命令:

对应设置的环境变量:

安装完成之后,让我们来测试一下Cuda,运行:

运行输出:

至此,即说明NVIDIA的驱动和Cuda已经安装成功了。
上面的显示表示本机有3个GPU,GPU核心为GeForce GTX TITAN,每个GPU有12GB显存,因为没有在上面运行任何程序,所以目前GPU显存利用了0MB,GPU利用率0%。
此处,如果进行顺利,那么我们已经成功安装好了TensorFlow。
1.2.4 Geany开发环境
Geany是一个小巧的使用GTK+2开发的跨平台的开源集成开发环境,以GPL许可证分发源代码,是免费的自由软件,当前版本是1.31。Geany支持基本的语法高亮、代码自动完成、调用提示、插件扩展。支持文件类型:C、CPP、Java、Python、PHP、HTML、DocBook、Perl、LateX和Bash脚本。Geany小巧、启动迅速,主要缺点是界面简陋、运行速度慢、功能简单。
要下载Windows Geany安装程序,可访问http://geany.org/,单击“Download”下拉菜单中的“Releases”按钮,找到安装程序geany-1.25_setup.exe或类似的文件。下载安装程序后,运行它并接受所有的默认设置。
启动Geany,选择“文件→另存为”命令,将当前的空文件保存为“hello_world.py”,再在编辑窗口中输入代码:

Windows系统下的Geany编辑器如图1-4所示。

图1-4 Windows系统下的Geany编辑器
现在选择“生成→设置生成命令”,将看到文字Compile和Execute,它们旁边都有一个命令。在默认情况下,这两个命令都是“python”,但Geany不知道这个命令位于系统的什么地方。需要添加启动终端会话时使用的路径。在编译命令和执行中,添加命令Python所在的驱动器和文件夹。编译命令效果如图1-5所示。

图1-5 编译命令效果
提示:务必确定空格和大小都与图1-5中显示的完全相同。正确地设置这些命令后,单击“确定”按钮,即可成功运行程序。
在Geany中运行程序的方式有3种,可选择“生成→Execute”命令;单击按钮;按“F5”键。