美文网首页
Ubuntu Tensorflow 源码编译

Ubuntu Tensorflow 源码编译

作者: 侠之大者_7d3f | 来源:发表于2019-11-17 02:26 被阅读0次

前言

最近工作有点忙,终于抽出时间记录一下开发的点滴。由于工作原因,需要采用Tensorflow进行模型推断(inference), 同时又需要修改Tensorflow底层的部分源码,因此记录下Tensorflow的编译过程以及踩过的坑。


环境

  • Ubuntu 18.04
  • protoc 3.6.1
  • anaconda3, python 3.7
  • bazel-0.19.2
  • tensorflow-1.13.1
  • java, jdk-10

目的

  1. 编译生产tensorflow C++ 动态链接库, .so文件
  2. 编译生成tensorflow python package, .whl文件

编译过程的坑

  1. bazel, protobuf 无法下载、下载速度极慢, 解决方法:使用代理,或者用手机WIFI热点
  2. tensorflow, bazel, protobuf 三者版本一定要对应!!!, 否者编译出错或者编译好了无法使用
  3. 尽量使用openJDK8, 其他版本可能会编译出错

step1: 配置编译环境

  • 安装openJDK
  • 编译安装protobuf
  • 安装bazel

protobuf编译安装

下载: https://github.com/protocolbuffers/protobuf

图片.png 图片.png
unzip protobuf-xxxx
cd protobuf-xxxx
./configure
make
make install

检验protobuf是否安装好:


图片.png 图片.png

安装bazel

https://github.com/bazelbuild/bazel

图片.png 图片.png
bash ./bazel-0.19.2-installer-linux-x86_64.sh

编译Tensorflow

下载对应的Tensorflow版本源码

unzip tensorflow-1.13.1.zip 
cd tensorflow-1.13.1
图片.png

下载Tensorflow的依赖库,编译安装Eigen

./tensorflow/contrib/makefile/download_dependencies.sh 
cd tensorflow/contrib/makefile/downloads/
cd eigen
mkdir build
cd build
cmake ../
make 
sudo make install
图片.png

配置Tensorflow编译选项

在tensorflow-1.13.1目录执行:

./configure 

编译Tensorflow C++ 动态链接库:

  • CPU Only
bazel build --config=opt //tensorflow:libtensorflow_cc.so
  • With GPU
bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so

编译生成Tensorflow python 包

  • CPU Only
bazel build //tensorflow/tools/pip_package:build_pip_package 
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

  • With GPU
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package 
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

相关文章

网友评论

      本文标题:Ubuntu Tensorflow 源码编译

      本文链接:https://www.haomeiwen.com/subject/dcguictx.html