ubuntu编译tensorflow
环境准备
- Ubuntu-16.04(内存8G起步)
- tensorflow-1.8.0(CPU版)
- protobuf-3.5.0
- gcc-4.8以上
- bazel-0.18.0
- python-2.7/3.5
1.安装Protobuf
需要注意的是,protobuf的版本要与tensorflow版本相对应,protobuf官方链接,tensorflow1.8.0对应的protobuf版本为3.5。
点击最下面的选项Source Code(tar.gz),并解压进入文件夹,在编译安装protobuf之前需要先安装一些工具(automake libtool)。
在终端依次输入指令:
1 | sudo apt-get install automake libtool |
2.安装Bazel
Bazel与tensorflow的版本也需要对应,这里用的Bazel版本为0.18.0,Bazel链接。
下载二进制文件bazel-0.18.0-installer-linux-x86_64.sh
打开终端运行Bazel安装程序
1 | chmod +x bazel-0.15.2-installer-linux-x86_64.sh |
安装完后配置环境,打开~/.bashrc(sudo gedit ~/.bashrc)并在文件最后加入
1 | export PATH="$PATH:$HOME/bin" |
保存后使其生效
1 | source ~/.bashrc |
3.编译tensorflow源码
tensorflow官方源码链接,选择所需要的版本,下载Source Code(tar.gz)
解压,并进入文件夹,打开命令行终端,输入命令
1 | ./configure |
在这过程中,基本都可以选择No,若是编译GPU版本,则在build Tensorflow with CUDA support ?中选择Y,并输入对应的CUDA以及cuDNN版本
配置完成后用Bazel编译:
1 | bazel build --config=opt //tensorflow:libtensorflow_cc.so # CPU版 |
注意,若是在C++环境中需要使用opencv环境,使用命令:
1 | bazel build --config=monolithic //tensorflow:libtensorflow_cc.so |
一般的编译时间大概为半个小时到一个小时,编译完之后的信息如下:
1 | Target //tensorflow:libtensorflow_cc.so up-to-date: |
注意,看下路径./tensorflow-1.8.0/tensorflow/contrib/makefile下有没有downloads文件夹,若是没有,则需要在./tensorflow-1.8.0文件夹下,输入:
1 | ./tensorflow-1.8.0/tensorflow/contrib/makefile/download_dependencies.sh |
执行完后,会有downloads文件夹。
4.安装Eigen库
首先打开上一步downloads文件夹,里面会有eigen文件夹,进入eigen文件夹依次输入
1 | mkdir build |
安装完毕后,会在usr/local/include目录下会出现eigen3文件夹
接下来就是用C++调用pb模型了。。。后续继续更新。