这篇《TensorFlow 2 安装指南》节选自由谷歌开发者专家(GDE)李锡涵@snowkylin 编写、广受好评的开源 TensorFlow 入门教程——《简单粗暴TensorFlow 2》,详细介绍了在个人电脑或服务器上安装 TensorFlow 2 的步骤和各种细节,让你第一次安装 TensorFlow 2 就上手!
文 / 李锡涵,Google Developers Expert
本文节选自《简单粗暴 TensorFlow 2.0》
TensorFlow 的 Python 版本使用最为广泛。作为一个 Python 包,TensorFlow 和其他 Python 包的安装方法区别不大,使用 Python 的包管理器 pip 即可。具体步骤如下:
1. 安装 Python 环境。此处建议安装 Anaconda 。这是一个开源的 Python 发行版本,提供了一个完整的科学计算环境,包括 NumPy、SciPy 等常用科学计算库。当然,你有权选择自己喜欢的 Python 环境。
2. 使用 Anaconda 自带的 conda 包管理器建立一个 Conda 虚拟环境,并进入该虚拟环境。在命令行下输入以下命令:
# 建立虚拟环境
# “tf2.0”是你建立的 Conda 虚拟环境的名字
# python=3.7 代表该虚拟环境的 Python 版本为 3.7
conda create --name tf2.0 python=3.7
# 进入名为“tensorflow”的虚拟环境
conda activate tf2.0
3. 使用 Python 包管理器 pip 安装 TensorFlow。在命令行下输入以下命令:
pip install tensorflow==2.0.0-beta1 # TensorFlow CPU 版本
或
pip install tensorflow-gpu # TensorFlow GPU 版本,需要具有 NVIDIA 显卡及正确安装驱动程序,详见下文
等待片刻即安装完毕。
小技巧
也可以使用 conda install tensorflow
或者 conda install tensorflow-gpu
来安装 TensorFlow,不过 conda 源的版本往往更新较慢,难以第一时间获得最新的 TensorFlow 版本;
在 Windows 下,需要打开开始菜单中的 “Anaconda Prompt” 进入 Anaconda 的命令行环境;
在国内环境下,推荐使用 国内的 pypi 镜像 和 Anaconda 镜像 ,将显著提升 pip 和 conda 的下载速度;
如果对磁盘空间要求严格(比如服务器环境),可以安装 Miniconda ,仅包含 Python 和 Conda,其他的包可自己按需安装。
pip 和 conda 包管理器
pip 是最为广泛使用的 Python 包管理器,可以帮助我们获得最新的 Python 包并进行管理。常用命令如下:
pip install [package-name] # 安装名为 [package-name] 的包
pip install [package-name]==X.X # 安装名为 [package-name] 的包并指定版本 X.X
pip install [package-name] --proxy=代理服务器IP:端口号 # 使用代理服务器安装
pip install [package-name] --upgrade # 更新名为 [package-name] 的包
pip uninstall [package-name] # 删除名为 [package-name] 的包
pip list # 列出当前环境下已安装的所有包
conda 包管理器是 Anaconda 自带的包管理器,可以帮助我们在 conda 环境下轻松地安装各种包。相较于 pip 而言,conda 的通用性更强(不仅是 Python 包,其他包如 CUDA Toolkit 和 cuDNN 也可以安装),但 conda 源的版本更新往往较慢。常用命令如下:
conda install [package-name] # 安装名为 [package-name] 的包
conda install [package-name]=X.X # 安装名为 [package-name] 的包并指定版本 X.X
conda update [package-name] # 更新名为 [package-name] 的包
conda remove [package-name] # 删除名为[package-name]的包
conda list # 列出当前环境下已安装的所有包
conda search [package-name] # 列出名为 [package-name] 的包在 conda 源中的所有可用版本
conda 中配置代理:在用户目录下的 .condarc 文件中添加以下内容:
proxy_servers:
http: http://代理服务器IP:端口号
Conda 虚拟环境
在 Python 开发中,很多时候我们希望每个应用有一个独立的 Python 环境(比如应用 1 需要用到 TensorFlow 1.X,而应用 2 使用 TensorFlow 2.0)。这时,Conda 虚拟环境即可为一个应用创建一套“隔离”的 Python 运行环境。使用 Python 的包管理器 conda 即可轻松地创建 Conda 虚拟环境。常用命令如下:
conda create --name [env-name] # 建立名为 [env-name] 的 Conda 虚拟环境
conda activate [env-name] # 进入名为 [env-name] 的 Conda 虚拟环境
conda deactivate # 退出当前的 Conda 虚拟环境
conda env remove --name [env-name] # 删除名为 [env-name] 的 Conda 虚拟环境
conda env list # 列出所有 Conda 虚拟环境
GPU 版本的 TensorFlow 可以利用 NVIDIA GPU 强大的计算加速能力,使 TensorFlow 的运行更为高效,尤其是可以成倍提升模型训练的速度。
在安装 GPU 版本的 TensorFlow 前,你需要具有一块不太旧的 NVIDIA 显卡,以及正确安装 NVIDIA 显卡驱动程序、CUDA Toolkit 和 cnDNN。
GPU 硬件的准备
TensorFlow 对 NVIDIA 显卡的支持较为完备。对于 NVIDIA 显卡,要求其 CUDA Compute Capability 须不低于3.0,可以到 NVIDIA的官方网站 查询自己所用显卡的CUDA Compute Capability。目前,AMD 的显卡也开始对 TensorFlow 提供支持,可访问 这篇博客文章 查看详情。
NVIDIA驱动程序的安装
- Windows
Windows 环境中,如果系统具有 NVIDIA 显卡,则往往已经自动安装了 NVIDIA 显卡驱动程序。如未安装,直接访问 NVIDIA 官方网站 下载并安装对应型号的最新公版驱动程序即可。
- Linux
在服务器版Linux系统下,同样访问NVIDIA官方网站下载驱动程序(为 .run
文件),并使用 sudo bash DRIVER_FILE_NAME.run
命令安装驱动即可。在安装之前,可能需要使用 sudo apt-get install build-essential
安装合适的编译环境。
在具有图形界面的桌面版Linux系统上,NVIDIA 显卡驱动程序需要一些额外的配置,否则会出现无法登录等各种错误。如果需要在 Linux 下手动安装 NVIDIA 驱动,注意在安装前进行以下步骤(以 Ubuntu 为例):
禁用系统自带的开源显卡驱动Nouveau(在/etc/modprobe.d/blacklist.conf
文件中添加一行blacklist nouveau
,使用sudo update-initramfs -u
更新内核,并重启)
禁用主板的 Secure Boot 功能
停用桌面环境 (如sudo service lightdm stop
)
删除原有 NVIDIA 驱动程序 (如sudo apt-get purge nvidia*
)
小技巧
对于桌面版Ubuntu系统,有一个很简易的NVIDIA驱动安装方法:在系统设置(System Setting)里面选软件与更新(Software & Updates),然后点选Additional Drivers里面的“Using NVIDIA binary driver”选项并点选右下角的“Apply Changes”即可,系统即会自动安装NVIDIA驱动,但是通过这种安装方式安装的NVIDIA驱动往往版本较旧。
NVIDIA 驱动程序安装完成后,可在命令行下使用nvidia-smi
命令检查是否安装成功,若成功则会打印出当前系统安装的 NVIDIA 驱动信息,形式如下:
提示
命令nvidia-smi
可以查看机器上现有的GPU及使用情况。(在 Windows 下,将 C:\Program Files\NVIDIA Corporation\NVSMI
加入 Path 环境变量中即可,或 Windows 10 下可使用任务管理器的“性能”标签查看显卡信息)
更详细的 GPU 环境配置指导可以参考博客文章[1] & [2] 。
CUDA Toolkit 和 cnDNN 的安装
在Anaconda环境下,推荐使用:
conda install cudatoolkit=X.X
conda install cudnn=X.X.X
安装 CUDA Toolkit 和 cnDNN,其中 X.X 和 X.X.X 分别为需要安装的 CUDA Toolkit 和 cuDNN 版本号,必须严格按照 TensorFlow 官方网站所说明的版本安装(对于 TensorFlow 2.0 beta1,可以安装版本为 10.0 的 CUDA Toolkit 和版本为 7.6.0 的 cuDNN)。在安装前,可使用conda search cudatoolkit
和conda search cudnn
搜索 conda 源中可用的版本号。
当然,也可以按照 TensorFlow 官方网站上的说明 手动下载 CUDA Toolkit 和 cuDNN 并安装,不过过程会稍繁琐。
使用 conda 包管理器安装 GPU 版本的 TensorFlow 时,会自动安装对应版本的 CUDA Toolkit 和 cuDNN。conda 源的更新较慢,如果对版本不太介意,推荐直接使用conda install tensorflow-gpu
进行安装。
安装完毕后,我们来编写一个简单的程序来验证安装。
在命令行下输入conda activate tensorflow
进入之前建立的安装有 TensorFlow 的 Conda 虚拟环境,再输入python
进入 Python 环境,逐行输入以下代码:
import tensorflow as tf
A = tf.constant([[1, 2], [3, 4]])
B = tf.constant([[5, 6], [7, 8]])
C = tf.matmul(A, B)
print(C)
如果能够最终输出:
tf.Tensor(
[[19 22]
[43 50]], shape=(2, 2), dtype=int32)
说明 TensorFlow 已安装成功。运行途中可能会输出一些 TensorFlow 的提示信息,属于正常现象。
IDE 设置
对于机器学习的研究者和从业者,建议使用 PyCharm 作为 Python 开发的 IDE。
在新建项目时,你需要选定项目的 Python Interpreter,也就是用怎样的 Python 环境来运行你的项目。在安装部分,你所建立的每个 Conda 虚拟环境其实都有一个自己独立的 Python Interpreter,你只需要将它们添加进来即可。选择“Add”,并在接下来的窗口选择“Existing Environment”,在 Interpreter 处选择Anaconda安装目录/envs/所需要添加的Conda环境名字/python.exe
(Linux下无.exe
后缀)并点击“OK”即可。如果选中了“Make available to all projects”,则在所有项目中都可以选择该 Python Interpreter。注意,在 Windows 下 Anaconda 的默认安装目录比较特殊,一般为 C:\Users\用户名\Anaconda3\
,即当前 Windows 用户的用户目录下。
对于 TensorFlow 开发而言,PyCharm 的 Professonal 版本非常有用的一个特性是 远程调试 (Remote Debugging)。当你编写程序的终端机性能有限,但又有一台可远程ssh访问的高性能计算机(一般具有高性能 GPU)时,远程调试功能可以让你在终端机编写程序的同时,在远程计算机上调试和运行程序(尤其是训练模型)。你在终端机上对代码和数据的修改可以自动同步到远程机,在实际使用的过程中如同在远程机上编写程序一般,与串流游戏有异曲同工之妙。
不过远程调试对网络的稳定性要求高,如果需要长时间训练模型,建议登录远程机终端直接训练模型(Linux 下可以结合nohup命令 ,让进程在后端运行,不受终端退出的影响)。远程调试功能的具体配置步骤见 PyCharm 文档 。
小技巧
如果你是学生并有 .edu 结尾的邮箱的话,可以在 这里 申请 PyCharm 的免费 Professional 版本授权。
对于 TensorFlow 及深度学习的业余爱好者或者初学者, Visual Studio Code 或者一些在线的交互式 Python 环境(比如免费的 Google Colab )也是不错的选择。Colab 的使用方式可参考附录。
提示
对于学习而言,TensorFlow 的硬件门槛并不高。甚至,借助免费或灵活的云端计算资源,只要你有一台能上网的电脑,就能够熟练掌握 TensorFlow!
在很多人的刻板印象中,TensorFlow 乃至深度学习是一件非常“吃硬件”的事情,以至于一接触 TensorFlow,第一件事情可能就是想如何升级自己的电脑硬件。不过,TensorFlow 所需的硬件配置很大程度是视任务和使用环境而定的:
对于 TensorFlow 初学者,无需硬件升级也可以很好地学习和掌握 TensorFlow。本手册中的大部分教学示例,大部分当前主流的个人电脑(即使没有 GPU)均可胜任,无需添置其他硬件设备。如果自己的个人电脑难以胜任,可以考虑在云端(例如免费的 Colab )进行模型训练。
对于参加数据科学竞赛(比如 Kaggle)或者经常在本机进行训练的个人爱好者或开发者,一块高性能的 NVIDIA GPU 往往是必要的。CUDA 核心数和显存大小是决定显卡机器学习性能的两个关键参数,前者决定训练速度,后者决定可以训练多大的模型以及训练时的最大 Batch Size,对于较大规模的训练而言尤其敏感。
对于前沿的机器学习研究(尤其是计算机视觉和自然语言处理领域),多 GPU 并行训练是标准配置。为了快速迭代实验结果以及训练更大规模的模型以提升性能,4 卡、8 卡或更高的 GPU 数量是常态。
关于深度学习工作站的具体配置,由于硬件行情更新较快,故不在此列出具体配置,推荐关注 知乎问题 - 如何配置一台适用于深度学习的工作站? ,并结合最新市场情况进行配置。
本文节选并编译于在线的开源 TensorFlow 2.0 技术手册《简单粗暴 TensorFlow 2.0》。
如果也想像大神一样快速进步,别错过 TensorFlow 官方团队在中国大学慕课平台推出的《TensorFlow 入门实操课程》,帮助你了解更多机器学习设计思路和实践模式。立即点击此处学习吧!
观看B站视频,了解更多 TensorFlow 2 的新特性。
TensorFlow 2 新特性
还想获取更多重要资源?记得扫码关注 TensorFlow 官方微信公众号( TensorFlow_official )!