Ubuntu16.04系统Tensorflow源码安装

最近学习Tensorflow,记录一下安装过程。目前安装的是CPU版的

1、下载tensorflow源码

tensorflow是个开源库,在github上有源码,直接在上面下载。下载地址:https://github.com/tensorflow/tensorflow

2、安装python的一些依赖库

tensorflow支持C、C++和Python三种语言,但是它对Python的支持是最全面的,所以我们这里使用Python。Python的安装这里就赘述了。我这里安装的是python3,就以python3为例子了

sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel  

3、安装bazel

Bazel是从谷歌开源的自动化构建工具,谷歌内部绝大部分的应用都是通过它来编译的。

1)安装JDK8

安装Bazel,首先要安装JDK8

sudo apt-get install software-properties-common  
sudo add-apt-repository ppa:webupd8team/java  
sudo apt-get update  
sudo apt-get install oracle-java8-installer  

2)安装相关库

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python  

注意:上面有一个是zlib1g-dev,不是zliblg-dev

3)下载bazel

下载网址为https://github.com/bazelbuild/bazel/releases,有多个版本,下载名字为bazel-<version>-installer-linux-x86_64.sh的。

4)运行安装器

chmod +x bazel-<version>-installer-linux-x86_64.sh  
./bazel-<version>-installer-linux-x86_64.sh --user  

第一行是为了给该安装器添加执行权限

第二行是执行该安装器,后面的--user,表示把bazel安装到了$HOME/bin目录里面。

5)设置环境变量

export PATH="$PATH:$HOME/bin"  

上面提到把bazel安装到了$HOME/bin目录,这里是把该目录添加到默认目录里面了。在调用bazel的时候系统会到该目录里查找bazel

4、配置tensorflow编译环境

cd tensorflow  
chmod +x ./configure  
./configure  

进入之前下载的tensorflow源码目录内

给配置文件configure添加执行权限

执行configure文件

大部分都选的n,根据自己需要选择

5、编译pip安装包

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package  
过程中遇到了一些错误

是在tensorflow文件中有些文件没有执行权限,添加执行权限就可以了

chmod +x tensorflow/tools/pip_package/build_pip_package.sh  
然后重新编译,后来在编译过程中有遇到了类似的错误,编译失败。同样是因为没有执行权限的原因。这个忘记截图了。为了防止后面出现同样的错误,为整个文件夹都添加了执行权限。这个操作比较危险,不过无所谓了,反正安装玩后要删除这个文件夹的。

cd ../  
chmod –r +x ./tensorflow  
cd tensorflow  

做完这些后,重新在编译,然后编译成功。编译了好长时间啊,大概要一个半小时左右。

6、生成pip安装包.whl文件

sudo bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg  

如上图中,安装包名字为 tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl

7、用pip安装pip安装生成的安装包

sudo pip3 install tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl  

8、测试是否安装成功

Tips:在测试过程中,可能会出现如下错误:

不要着急,这个一般是因为当前目录下面有一个名字为tensorflow的文件,在导入的是后python会先当前目录的。就是把那个名字问tensorflow的文件当成了tensorflow模块所以会出错。换个名字或者放到其他目录就可以了。

猜你喜欢

转载自www.cnblogs.com/konglongdanfo/p/9031844.html