天天看点

《面向机器智能的TensorFlow实践》一2.5 源码构建及安装实例:在64位Ubuntu Linux上安装GPU版TensorFlow

本节书摘来自华章出版社《面向机器智能的tensorflow实践》一书中的第2章,第2.5节,作者 山姆·亚伯拉罕(sam abrahams)丹尼亚尔·哈夫纳(danijar hafner)[美] 埃里克·厄威特(erik erwitt)阿里尔·斯卡尔皮内里(ariel scarpinelli),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 源码构建及安装实例:在64位ubuntu linux上安装gpu版tensorflow

如果希望使用带有gpu支持的tensorflow,那么最可能的选择是从源码构建和安装。本节给出了一个完整的安装参考实例,详细介绍了安装和运行tensorflow所需的每一具体步骤。请注意,本示例中的操作系统为64位ubuntu linux发行版,因此如果你使用的是其他linux发行版,则可能需要对某些命令进行修改(如apt-get)。如果希望在mac os x上从源码构建tensorflow,笔者推荐tensorflow官网的安装指南:

https://www.tensorflow.org/versions/master/get_started/

os_setup.html#installation-for-mac-os-x

2.5.1 安装依赖库

这里假定你已安装了python-pip、python-dev和python-virtualenv。

构建tensorflow需要事先安装少量依赖库。按照所安装的python版本,执行下列命令:

1. python 2.7

2. python 3

2.5.2 安装bazel

bazel是一款基于谷歌内部软件的开源构建工具。在本书写作之时,为从源码构建tensorflow,需要bazel,因此我们必须自行安装该软件。bazel官网中有一份非常完整的安装指南,本节只介绍一些最基本的步骤。

第一件事是确保系统中已安装java development kit 8(jdk 8)。下列命令会将oracle jdk

8代码库添加到apt源中,然后进行安装:

对于ubuntu 15.10版及后续版本,也可安装oracle jdk的替代软件openjdk 8。安装后者更为容易,也是笔者所推荐的,可使用下列命令在系统中安装openjdk:

在继续下一步之前,请验证java已被正确安装:

java安装完毕后,还需要安装少量其他依赖库:

接下来,需要下载bazel安装脚本。为此,既可前往github上的bazel发行页面,也可使用下列wget命令。请注意,对于ubuntu系统,需要下载“bazel-xxx-installer-linux-x86_64.sh”:

# 下载bazel 0.3.0

最后,将所下载的安装脚本的权限修改为可执行的,并运行它:

通过使用--user选项,bazel将被安装到$home/bin目录。为确保该路径被添加到环境变量path中,可通过下列命令对~/.bashrc进行更新:

重启bash终端,并运行bazel,以确保一切可正常工作:

非常棒!接下来,需要安装一些能够支持gpu运算的依赖软件。

2.5.3 安装cuda软件(仅限nvidia gpu)

如果拥有一款支持cuda的nvidia gpu,则可安装带有gpu支持的tensorflow。支持cuda的显卡清单可从下列网址获取:

https://developer.nvidia.com/cuda-gpus

除了确保你的gpu榜上有名,还需注意与显卡“计算能力(compute

capability)”有关的量化数字。例如,geforce

gtx 1080的计算能力为6.1,而geforce gtx titan x的计算能力为5.2。在编译tensorflow时需要用到这个数字。在确定可利用cuda后,要做的第一件事便是注册nvidia的“accelerated computer developer program”。为了下载安装cuda和cudnn所需的所有文件,这个步骤是必需的。注册链接如下:

https://developer.nvidia.com/accelerated-computing-developer

当注册完成后,你会希望下载cuda。前往下列链接,并使用如下操作指南:

https://developer.nvidia.com/cuda-downloads

1)在“select target platform(选择目标平台)”下方,选择下列选项:

linux

x86_64

ubuntu

14.04/15.04

deb(本地)

2)单击“download(下载)”按钮,将安装文件保存在你的计算机中。该文件体积较大,因此完成下载可能需要一段较长的时间。

3)导航至包含所下载的安装文件的目录,并运行下列命令:

上述命令执行完毕后, cuda将被安装到/usr/local/cuda目录下。

接下来,需要下载cudnn,它是一款专为深度神经网络设计的基于cuda的加速库。单击如下页面的“download”按钮:

https://developer.nvidia.com/cudnn

用在前面创建的账号登录后,将看到一份简短的调查问卷。完成问卷后,可通过单击问卷下方的按钮进入下载页面。单击“i agree to the terms...”以接受下载许可协议。由于前面安装的是cuda 7.5,所以需要下载cudnn for cuda 7.5(本书写作之时,笔者使用的是cudnn v5.0)。

单击“download cudnn v5 for cuda 7.5”,将下载选项展开。

单击“cudnn v5 library for linux”,下载经过压缩的cudnn文件。

导航至下载好的.tgz文件,运行下列命令,将必要的文件复制到/usr/local/cuda目录下:

以上便是安装cuda所需的所有步骤。由于所有依赖库都已细心安装,接下来便可安装tensorflow了。

2.5.4 从源码构建和安装tensorflow

首先需要克隆github上的tensorflow代码库,然后进入其所在目录:

进入上述目录后,运行./configure脚本,将所使用的编译器、cuda版本等信息通知给bazel。请确保已记录显卡的“计算能力”数字(上文中已介绍过):

# 注意:若使用python 3,需要指定为/usr/bin/python3

google cloud

platform支持目前正处于封闭alpha测试阶段。如果能够访问该程序,可在回答google cloud platform支持问题时选择y(yes)。

配置完成后,便可利用bazel创建一个用于创建python二进制文件的可执行程序:

执行上述命令需要相当长的一段时间,具体时长取决于你的计算机性能。待bazel完成上述任务后,运行输出的可执行程序,并传入一个表示python wheel文件存储路径的参数:

上述命令将在~/tensorflow/bin下创建一个python.whl文件。请确保你的“tensor-flow”virtualenv环境处于活动状态,然后用pip安装该wheel文件(请注意该二进制文件的具体名称会依所安装的tensorflow版本、所使用的操作系统和python版本而不同):

如果你拥有多台硬件配置类似的机器,则可使用该wheel文件在这些机器上实现tensorflow的快速安装。

至此,tensorflow便安装完毕!最后介绍如何安装jupyter notebook和matplotlib。