3.1 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的下载地址:
https://www.continuum.io/downloads
Mac下有两种安装方式,一种是窗口式的安装程序(.pkg),一种是命令行安装程序(.sh),一般选择第二种。下载后执行以下命令:
代码语言:javascript复制bash Anaconda3-4.4.0-MacOSX-x86_64.sh
TensorFlow CPU版本的安装
TensorFlow的CPU版本相对容易安装,一般分为两种情况,一种是安装编译好的release版本,推荐大部分用户安装这种版本;第二种使用分支源码进行编译安装。
第一种安装release版本,到https://github.com/tensorflow/tensorflow下载最新的release版本(.whl)到本地,然后本地执行:
代码语言:javascript复制pip install --gpgrade tensorflow-1.3.0rc0-py3-none-any.whl
第二种使用源码编译安装,先确保系统安装了gcc(版本最好介于4.8~5.4之间),还要确保安装了构建工具bazel。bazel是Google自家的编译工具,以快速、可扩展、灵活、可靠著称,下载安装方式如下地址:
https://github.com/bazelbuild/bazel
安装步骤:
(1) 下载源码包,解压
代码语言:javascript复制wget https://github.com/tensorflow/tensorflow/archive/v1.3.0-rc0.tar.gz
tar -zxvf v1.3.0-rc0.tar.gz
(2) 进入源码目录,配置
代码语言:javascript复制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) 执行编译
代码语言:javascript复制bazel build --copt=-march=native -c opt //tensorflow/tools/pip_package:build_pip_package
(4) 编译结束,生成pip安装包
代码语言:javascript复制bazel-bin/tensonflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
(5) 最后安装
代码语言:javascript复制pip install /tmp/tensorflow_pkg/tensorflow-xxx-xxx-xxx-xxx.whl
TensorFlow GPU版本的安装
TensorFlow的GPU版本安装相对复杂。首先需要NVIDIA显卡,然后安装显卡驱动、CUDA和cuDNN。
CUDA的安装
CUDA是NVIDIA推出使用GPU资源进行通用计算(Genral Purpose GPU)的SDK,安装包里一般集成了显卡驱动。
先下载NVIDIA CUDA:
https://developer.nvidia.com/cuda-downloads
(1) 暂停NVIDIA驱动的X server
代码语言:javascript复制sudo init 3
(2) 将CUDA的安装包权限设置成可执行,并安装
代码语言:javascript复制chmod u x cuda_8.0.61_375.26_linux.run
sudo ./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:
https://developer.nvidia.com/rdp/cudnn-download
进入安装目录并解压包
代码语言:javascript复制cd /usr/local
sudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
这样就完成了cuDNN的安装。
CUDA的环境变量设置
代码语言:javascript复制vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin:$PATH
source ~/.bashrc
安装TensorFlow
先到https://github.com/tensorflow/tensorflow下载最新的GPU release版本(.whl)到本地,执行:
代码语言:javascript复制pip install --gpgrade tensorflow_gpu-1.3.0rc0-cp35-cp35m-linux_x86_64.whl
然后一步步选择安装完成。