TensorFlow 2.0 beta1 已经发布。本文详细介绍在个人电脑或服务器上安装 TensorFlow 2.0 beta1 的步骤和各种细节, 让你第一次安装 TensorFlow 2.0 就上手!
一般安装步骤
TensorFlow 的 Python 版本使用最为广泛。作为一个 Python 包,TensorFlow 和其他 Python 包的安装方法区别不大,使用 Python 的包管理器 pip 即可。具体步骤如下:
安装 Python 环境。此处建议安装 Anaconda 。这是一个开源的 Python 发行版本,提供了一个完整的科学计算环境,包括 NumPy、SciPy 等常用科学计算库。当然,你有权选择自己喜欢的 Python 环境。
使用 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
使用 Python 包管理器 pip 安装 TensorFlow。在命令行下输入以下命令:
pip install tensorflow==2.0.0-beta1 # TensorFlow CPU 版本
或
pip install tensorflow-gpu # TensorFlow GPU 版本,需要具有 NVIDIA 显卡及正确安装驱动程序,详见下文
等待片刻即安装完毕。
注:Anaconda下载 链接https://www.anaconda.com
小技巧
也可以使用
conda install tensorflow
或者
conda install tensorflow-gpu
来安装 TensorFlow,不过 conda 源的版本往往更新较慢,难以第一时间获得最新的 TensorFlow 版本;在 Windows 下,需要打开开始菜单中的 “Anaconda Prompt” 进入 Anaconda 的命令行环境;在国内环境下,推荐使用 国内的 pypi 镜像 和 Anaconda 镜像 ,将显著提升 pip 和 conda 的下载速度;
注:清华大学的 pypi 镜像 链接
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
清华大学的 Anaconda 镜像 链接
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
如果对磁盘空间要求严格(比如服务器环境),可以安装 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 安装指南
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的官方网站 链接
https://developer.nvidia.com/cuda-gpus/
博客文章 链接
https://medium.com/tensorflow/amd-rocm-gpu-support-for-tensorflow-33c78cc6a6cf
NVIDIA驱动程序的安装
Windows
Windows 环境中,如果系统具有 NVIDIA 显卡,则往往已经自动安装了 NVIDIA 显卡驱动程序。如未安装,直接访问 NVIDIA 官方网站 下载并安装对应型号的最新公版驱动程序即可。
注:NVIDIA 官方网站 链接
https://www.nvidia.com/Download/index.aspx?lang=en-us
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 环境配置指导可以参考 2篇博客文章 。
注:参考博客文章1 链接
https://www.linkedin.com/pulse/installing-nvidia-cuda-80-ubuntu-1604-linux-gpu-new-victor/
参考博客文章2 链接
https://blog.csdn.net/wf19930209/article/details/81877822
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
进行安装。
注:TensorFlow 官方网站上的说明 链接
https://www.tensorflow.org/install/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。
注:PyCharm 链接
http://www.jetbrains.com/pycharm/
在新建项目时,你需要选定项目的 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 版本授权。
注:申请免费授权
http://www.jetbrains.com/student/
对于 TensorFlow 及深度学习的业余爱好者或者初学者, Visual Studio Code 或者一些在线的交互式 Python 环境(比如免费的 Google Colab )也是不错的选择。Colab 的使用方式可参考 附录 。
注:Visual Studio Code 链接
https://code.visualstudio.com/
Google Colab 链接
https://colab.research.google.com/
关于nohup命令 链接
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
附录 链接
https://tf.wiki/zh/appendix/cloud.html#colab
TensorFlow所需的硬件配置 *
提示
对于学习而言,TensorFlow 的硬件门槛并不高。甚至,借助免费或灵活的云端计算资源,只要你有一台能上网的电脑,就能够熟练掌握 TensorFlow!
在很多人的刻板印象中,TensorFlow 乃至深度学习是一件非常“吃硬件”的事情,以至于一接触 TensorFlow,第一件事情可能就是想如何升级自己的电脑硬件。不过,TensorFlow 所需的硬件配置很大程度是视任务和使用环境而定的:
对于 TensorFlow 初学者,无需硬件升级也可以很好地学习和掌握 TensorFlow。本手册中的大部分教学示例,大部分当前主流的个人电脑(即使没有 GPU)均可胜任,无需添置其他硬件设备。如果自己的个人电脑难以胜任,可以考虑在云端(例如免费的 Colab )进行模型训练。
对于参加数据科学竞赛(比如 Kaggle)或者经常在本机进行训练的个人爱好者或开发者,一块高性能的 NVIDIA GPU 往往是必要的。CUDA 核心数和显存大小是决定显卡机器学习性能的两个关键参数,前者决定训练速度,后者决定可以训练多大的模型以及训练时的最大 Batch Size,对于较大规模的训练而言尤其敏感。
对于前沿的机器学习研究(尤其是计算机视觉和自然语言处理领域),多 GPU 并行训练是标准配置。为了快速迭代实验结果以及训练更大规模的模型以提升性能,4 卡、8 卡或更高的 GPU 数量是常态。
关于深度学习工作站的具体配置,由于硬件行情更新较快,故不在此列出具体配置,推荐关注 知乎问题 - 如何配置一台适用于深度学习的工作站? ,并结合最新市场情况进行配置。
注:知乎问题 - 如何配置一台适用于深度学习的工作站?
https://www.zhihu.com/question/33996159
本文转载至微信公众号。