Tensorflow环境搭建
Tensorflow的支持的平台有Windows,Linux和Mac OS,相对Windows,Linux对Tensorflow支持的更好,所以选择Linux下安装Tensorflow。
Tensorflow有两个主要的依赖包——Protocal Buffer【1】和Bazel【2】,虽然其依赖包不止这两个,但这两个是相对比较重要的,关于这两个依赖包的详细介绍等文档可到官网查找【3】。
(1)下载源码
下载网址:https://github.com/google/protobuf
(2)如何安装
安装参考:https://github.com/google/protobuf/blob/master/src/README.md
(1)下载源码
下载网址:https://github.com/bazelbuild/bazel/releases
(2)如何安装
安装参考:https://docs.bazel.build/versions/master/install-ubuntu.html
最好选择用Installing using binary installer方式安装,否则可能因为网络等问题导致安装失败。
这个工作是在你使用Linux之前就应该进行的,并不是仅仅因为要安装Tensorflow才需要。
对于算法工程师来讲,这个技能可能不是必须的,但是实现它可以帮助你提高工作效率,尤其在使用Linux遇到问题时,可以让你较快的找到解决方法,否则可能查了半天也搞不清楚为什么,了解的方法途径因人而异,可以选一种适合你的,Linux命令查询的一个中文网站http://man.linuxde.net/,我看的《鸟哥的Linux学习私房菜》,内容比较多,需要跳着看。
下载地址:https://www.anaconda.com/download/#download
安装方法:https://docs.anaconda.com/anaconda/install/linux
Tensorflow提供了3种安装方式,Docker安装【4】、pip安装【5】及通过源码安装;
3种方式各有优劣:
方法 |
优点 |
缺点 |
Docker安装 |
跨平台,移植性强,打包安装,简单易操作 |
对GPU支持有限,对本地开发环境支持不友好 |
pip安装 |
简单易操作,所需依赖关系已经打包好 |
无法修改Tensorflow本身,不可定制 |
源码安装 |
灵活,可修改Tensorflow ,可定制 |
较麻烦,需要先编译成pip所使用的wheel文件安装,安装前需安装好其他依赖工具包 |
我这里选择采用源码安装的方式进行介绍,整个安装步骤可按下列顺序执行:
(1)安装python(anaconda)安装方法参见2.4
(2)安装protocol buffer和bazel,安装方法参见2.1和2.2;
(3)安装其他依赖工具包,安装方法如下;
#python3.X环境
$ sudo apt-get install python3-numpy swig python3-devpython3-wheel
(4)安装cuda toolkit(如果要支持GPU的话必须安装,否则可忽略)
下载及安装方法参见:https://developer.nvidia.com/cuda-downloads
(5)下载Tensorflow源码
$ git clone https://github.com/tensorflow/tensorflow
(6)配置Tensorflow
$ cd tensorflow
$ ./configure
输入上述命令后可以开始配置,配置设置可百度的,网络上一般都有教程
(7)编译源码并安装
$ bazel build -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazek-bin/tensorflow/tools/pip_package/build_pip_package/tmp/tensorflow_pkg
$ sudo pip install /tmp/tensorflow_pkg/[tensorflow-[版本号]-py2-non-any.whl]
第一个命令中—config=cuda参数为对GPU的支持。如果不需要支持GPU,就不需要这个参数了。最后一行中,中括号中内容[tensorflow-[版本号]-py2-non-any.whl]是wheel安装包的名字,和系统安装环境有关,使用pip安装之前可以先通过ls命令确认安装包的名字。
参考资料:
【1】Protocal Buffer 是Google开发的处理结构化数据的工具,其序列化出来的数据要比XML格式的数据小3到10倍,解析时间快20到100倍,官方文档网址为:https://developers.google.com/protocol-buffers/docs
【2】Bazel是从Google开源的自动化构建工具,可编译Tensorflow源码,官方网址为:https://www.bazel.io/docs
【3】参考书《Tensorflow实战Google深度学习框架》
【4】https://www.docker.com/what-docker
【5】https://pip.pypa.io