3.1 tensorflow的编译及安装
安装TensorFlow有两种主要情况:
- 使用CPU,安装相对简单。
- 使用GPU,需要先安装CUDA和cuDNN,过程较为复杂。
无论哪种情况,我们都建议使用Anaconda作为Python的环境管理工具,因为它可以有效避免许多兼容性问题。
TensorFlow目前在Linux和Mac系统上支持较为完善(对Windows的支持尚不全面)。在Mac系统上,主要使用CPU版本(因为Mac系统很少使用NVIDIA显卡,而TensorFlow对CUDA的支持较好,对AMD的OpenCL支持仍处于实验阶段),其安装方式与Linux的CPU版本基本一致。
安装Anaconda
Anaconda是一个用于科学计算的Python发行版,内置了数百个常用的Python库,包括用于机器学习和数据挖掘的库,如Scikit-learn、numpy、scipy和pandas等,其中一些可能是TensorFlow的依赖库。
Anaconda的下载地址:
在Mac上,有两种安装方式:一种是图形界面的安装程序(.pkg),另一种是命令行安装程序(.sh),通常选择后者。下载后,执行以下命令:
bash Anaconda3-4.4.0-MacosX-x86_64.sh
TensorFlow CPU版本的安装
TensorFlow的CPU版本安装相对简单,分为两种情况:
- 安装预编译的release版本,推荐大多数用户使用这种方式。
- 使用分支源码进行编译安装。
第一种:安装release版本
从https://github.com/tensorflow/tensorflow下载最新的release版本(.whl)到本地,然后执行:
pip install --gpgrade tensorflow-1.3.0rc0-py3-none-any.whl
第二种:使用源码编译安装
首先,确保系统已安装gcc(版本最好在4.8到5.4之间),并安装构建工具bazel。bazel是Google的编译工具,以其快速、可扩展、灵活和可靠著称,下载和安装方式如下:
安装步骤:
(1) 下载源码包并解压:
(2) 进入源码目录并配置:
cd tensorflow-1.3.0-rc0./configure
选择Python路径,确保使用Anaconda的Python路径;选择CPU编译优化选项,默认-march=native即可;是否使用jemalloc作为默认的malloc实现(仅Linux),默认即可;是否开启Google云平台支持,选择否;是否需要支持hadoop File System,如果需要读取hdfs数据,选择yes;是否开启XLA JIT编译功能,建议选择no;选择Python的Library路径,依然使用Anaconda的路径;不选择使用GPU,包括OpenCL和CUDA。
(3) 执行编译:
bazel build --copt=-march=native -c opt //tensorflow/tools/pip_package:build_pip_package
(4) 编译结束后,生成pip安装包:
bazel-bin/tensonflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
(5) 最后安装:
pip install /tmp/tensorflow_pkg/tensorflow-xxx-xxx-xxx-xxx.whl
TensorFlow GPU版本的安装
TensorFlow的GPU版本安装相对复杂。首先需要NVIDIA显卡,然后安装显卡驱动、CUDA和cuDNN。
CUDA的安装
CUDA是NVIDIA推出的用于通用计算(General Purpose GPU)的SDK,安装包通常包含显卡驱动。
先下载NVIDIA CUDA:
(1) 暂停NVIDIA驱动的X server:
sudo init 3
(2) 将CUDA的安装包权限设置为可执行,并安装:
chmod u+x cuda_8.0.61_375.26_linux.runsudo ./cuda_8.0.61_375.26_linux.run
(3) 按q键跳过协议说明,接受协议后选择安装驱动程序。
(4) 选择安装路径,通常默认/usr/local/cuda-8.0。
(5) 不安装CUDA例子。
(6) 安装完毕。
cuDNN的安装
cuDNN是NVIDIA推出的深度学习中cnn和rnn的高度优化的实现。
下载cuDNN:
进入安装目录并解压包:
cd /usr/localsudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
这样就完成了cuDNN的安装。
CUDA的环境变量设置
vim ~/.bashrcexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATHexport CUDA_HOME=/usr/local/cuda-8.0export PATH=/usr/local/cuda-8.0/bin:$PATHsource ~/.bashrc
安装TensorFlow
从https://github.com/tensorflow/tensorflow下载最新的GPU release版本(.whl)到本地,执行:
pip install --gpgrade tensorflow_gpu-1.3.0rc0-cp35-cp35m-linux_x86_64.whl
然后一步步选择安装完成。