《面向机器智能的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。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
11天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
74 43
|
9天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
63 30
|
12天前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
54 20
|
4天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
47 7
|
12天前
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
31 12
|
1月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
1月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
157 20
|
1月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
124 13
|
29天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
180 7
|
1月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
289 55

热门文章

最新文章