sherry颖 2018-10-12
选自towardsdatascience,作者:Michael Nguyen,机器之心编译,参与:路雪、思源。
还在使用 pip 安装 TensorFlow?试试 conda 吧,简单方便安装 TensorFlow,且能带来更快的 CPU 性能。conda 是一个开源包和环境管理系统,能够跨平台运行,在 Mac、Windows 和 Linux 上都可以运行。如果你还没用过 conda,我推荐你立刻开始使用,因为它会让管理数据科学工具变得更轻松。
以下是使用 conda 而不用 pip 安装 TensorFlow 的两大原因:
更快的 CPU 性能
conda TensorFlow 包使用面向深度神经网络的英特尔数学核心函数库(Intel MKL-DNN),我们从 TensorFlow 1.9.0 版本开始。该库带来了巨大的性能提升,详见下图:
图源:https://www.anaconda.com/blog/developer-blog/tensorflow-in-anaconda/
如上所示,与 pip 安装相比,conda 安装可以带来超过 8 倍的速度提升。这对于经常使用 CPU 进行训练和推断的人来说非常棒!作为一名机器学习工程师,我在将代码 push 到 GPU 机器上之前,先使用 CPU 对代码运行测试训练。conda 安装带来的速度提升可以帮助快速迭代。我还在 CPU 上进行大量推断,因此这有助于我的模型性能。
MKL 库不仅加速 TensorFlow 包,还能加速其他广泛使用的库,如 NumPy、NumpyExr、SciPy 和 Scikit-Learn。
GPU 版本的安装也更加简单
conda 安装将自动安装 GPU 支持所需的 CUDA 和 CuDNN 库。pip 安装则需要手动安装这些库。人人喜欢一步到位,尤其是在下载与安装库这方面。
使用 pip 安装 TensorFlow 时,GPU 支持所需的 CUDA 和 CuDNN 库必须单独手动安装,增加了大量负担。而使用 conda 安装 GPU 加速版本的 TensorFlow 时,只需使用命令 conda install tensorflow-gpu,这些库就会自动安装成功,且版本与 tensorflow-gpu 包兼容。此外,conda 安装这些库的位置不会与通过其他方法安装的库的其他实例产生冲突。不管使用 pip 还是 conda 安装 GPU 支持的 TensorFlow,NVIDIA 驱动程序都必须单独安装。
对于 TensorFlow 的多个版本,conda 包可使用多种 CUDA 版本。例如,对于 TensorFlow 1.10.0 版本,conda 包支持可用的 CUDA 8.0、9.0 和 9.2 库。而 pip 包仅支持 CUDA 9.0 库。在不支持 CUDA 库最新版本的系统上运行时,这非常重要。最后,由于这些库是通过 conda 自动安装的,用户可轻松创建多个环境,并对比不同 CUDA 版本的性能。
快速启动
我希望以上两个原因足以说服你转而使用 conda。下面是使用 conda 安装所需的步骤。
pip uninstall tensorflow
如果还没有安装 Anaconda 或 Miniconda,需要先安装它们。Miniconda 仅安装 conda 和一些依赖项,Anaconda 则会预安装大量包。我更喜欢 Miniconda。使用 conda 安装时,如果选择 Anaconda,则伴随 TensorFlow 同时安装的还有 Anaconda 库中的 1400 多个常用软件包,它们会提供一个完整的数据科学环境。这些包安装到单独的 conda base 环境中,其内容不会影响到其他环境。
安装好 conda 之后,尝试以下命令:
conda install tensorflow
此外,如果你想要 GPU 版本,那么将上面一行中的 tensorflow 换成 tensorflow-gpu。除了使 TensorFlow 更快、更易于使用之外,conda 还提供其他工具组,使得整合工作流变得更加简单。我最喜欢的功能是虚拟环境。
最后,尽管 Anaconda 在官网上展示了使用 Conda 安装的优势与步骤,但 TensorFlow 官方网站尚未介绍使用 conda 进行安装的方法:
原文链接:https://towardsdatascience.com/stop-installing-tensorflow-using-pip-for-performance-sake-5854f9d9eb0c