背景
Tensorflow 是google开源的目前最流行的深度学习框架。
TensorFlow 源码基于c++ 开发,提供了java, c, c++, python等主流编程语言支持。目前业界主流的应用方式是使用Tensorflow python构建以及训练模型,模型训练完成后使用c++ 或者java将模型应用到生产环境。
本文主要介绍如何将Tensorflow编译成动态库以便于其他工程使用头文件以及动态库的方式引入Tensorflow进行模型训练或者应用训练好的模型。
本文的测试环境基于MacOS,Linux环境也可以按照相同步骤安装依赖,编译TensorFlow 动态库。
依赖
java
java --vesrion
java 9.0.1
bazel
bazel 是google 开源的工程构建工具。
brew install bazel
eigen
eigen 是一个C++矩阵运算库
brew install eigen
automake
brew install automake
libtool
brew install libtool
protobuf
brew install protobuf
编译
首先我们将整个Tensorflow clone到本地
git clone https://github.com/tensorflow/tensorflow
cd tensorflow
编译tensorflow 动态链接库
bazel build //tensorflow:libtensorflow_cc.so
bazel build //tensorflow:libtensorflow_framework.so
编译的过程耗时约30mins
编译完成后