先甩一个TensorFlow的官方安装页面: 
TensorFlow download and setup


先说说为什么要使用源代码安装吧

TensorFlow有多种安装方式,最容易便捷也最少坑的安装方式是Pip安装. 
我原先就是用pip安装的,一直在PC上训练模型也没出什么问题。

最近打算把深度学习移植到手机上去,捣鼓了半天发现必须要源码安装的TensorFlow才能支持编译安卓apk。

知道真相的我,先给了自己五分钟的缓冲时间。好吧,既然必须要移植,那就开始装吧。 
说句题外话,装之前要做好心理准备,跟pip安装一句代码的工作量相比,源码安装真是啰里啰嗦,问题百出啊~~遇到各种报错,折腾了两三天才搞定。

我的电脑环境

笔记本:ThinkPad T450 X86_64 
显卡:主显 Intel HD Graphics 5500 ; 独显 NVIDIA GT 940M 
系统环境:Ubuntu14.04 64位、Windows7 64位 双系统 
CUDA 版本: 8.0 
cudnn 版本: v5.1


前言 -安装概览

源码安装的过程很好理解,大体可以分为以下四步:

1、从 github 下载 tensorflow 的项目源代码 
2、配置Linux系统的Bazel编译环境 
3、使用 bazel 将Tensorflow源代码编译成 Python .whl包 
4、通过pip安装 3) 步编译完成的包

一、 从GitHub下载tensorflow的源码

终端运行

$ git clone https://github.com/tensorflow/tensorflow
 
 
  • 1
  • 1

这样下载的是最新版TensorFlow版本,也可以单独下载指定版本


二、搭建Linux下的Bazel编译环境

1、 安装 pip

$ sudo apt-get install python-pip python-dev
 
 
  • 1
  • 1

2、 安装 Java 8

$ sudo apt-get-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

3、配置Java 环境变量

$ sudo gedit /etc/environment
 
 
  • 1
  • 1

在打开的文件末尾添加下面一行

 JAVA_HOME = "/usr/lib/jvm/java-8-oracle"
 
 
  • 1
  • 1

4、 安装其他需要的包

$ sudo apt-get install pkg-config zip g++ zliblg-dev unzip
 
 
  • 1
  • 1

5、 安装 Bazel Installer

先下载安装文件 Bazel Installer 下载路径

从页面下方中,找到对应自己系统的版本下载,我的是: 
bazel-0.4.3-installer-linux-x86_64.sh

然后切换到.sh文件存放的路径,首先给下载的bazel-0.4.3-installer-linux-x86_64.sh文件添加可执行权限:

$ chmod +x bazel-0.4.3-installer-linux-x86_64.sh
 
 
  • 1
  • 1

然后执行该文件:

$ ./bazel-0.4.3-installer-linux-x86_64.sh.sh –user
 
 
  • 1
  • 1

6、 设置Bazel 环境变量

$ sudo gedit .bashrc
 
 
  • 1
  • 1

在 ~/.bashrc文件的末尾添加

export PATH='$PATH:$/home/fish/bin'
 
 
  • 1
  • 1

(注:fish是我的用户名,该路径下有一个名为 bazel 的文件。如果运行报错,首先要检查该路径下是否存在一个名为bazel的文件)

7、 添加其他依赖

$ sudo apt-get install python-numpy python-dev python-wheel
 
 
  • 1
  • 1

8、 安装 CUDA 和 cudnn

如果不安装支持GPU的版本,此步跳过

CUDA的安装请参考我的另一篇文章 Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程

9、 安装其他依赖

$ sudo apt-get install libcupti-dev
 
 
  • 1
  • 1

三、 编译生成 tensorflow .whl包

1、 切换到第一步下载的tensorflow目录下,在终端运行:

$ ./configure
 
 
  • 1
  • 1

随后会出现一步步的安装选项,我在这里把我的配置操作贴出来。

因为我安装的是支持GPU的TF,所以CUDA相关的选项都选择yes

./configure配置操作明细

我在这一步遇到了超多问题,因为每个人的电脑环境都不同,我就不啰嗦我自己遇到的问题了。

如果大家到时遇到什么问题的话,可以去Google。我遇到的每个问题都是在Google上找到解决方案的

选项都选完之后,是漫长的运行过程,耐心等待

配置完毕后最后显示 configuration finished

2、 创建Tensorflow 的whl包

还是在 tensorflow根目录下,终端运行

$ bazel build -c opt --config=cuda  //tensorflow/tools/pip_package:build_pip_package
 
 
  • 1
  • 1

然后再运行

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package  /tmp/tensorlflow_pkg
 
 
  • 1
  • 1

四、安装 tensorflow.whl包

根据上步的代码,生成的.whl包放在 /tmp下。去 /tmp目录下找到 名为 tensorflowXXX.whl文件,拷贝它的名字,然后终端运行:

$ sudo pip install /tmp/tensorflow_xxx.whl(替换为/tmp/tensorlflow_pkg
 
 
  • 1
  • 1

大功告成!!!

然后你可以运行一下tensorflow的神经网络程序,检验自己的tensorflow有没有安装成功

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐