Ubuntu 16.04 build TensorFlow & Lite C++ 動態連線庫
首先要安裝bazel tool
下載原始碼:git clone https://github.com/tensorflow/tensorflow.git
Build Tensorflow:
bazel build --jobs 6 //tensorflow:libtensorflow_cc.so
假如需要增加Intel CPU 加速:
bazel build --config=mkl --config=opt --jobs 6 //tensorflow:libtensorflow_cc.so
Build Tensorflow Lite:
編輯TensorFlow source code裡面的"tensorflow/contrib/lite/BUILD"檔案,增加:
cc_binary(
name = "libtflite.so",
deps = [":framework",
"//tensorflow/contrib/lite/kernels:builtin_ops",
"//tensorflow/contrib/lite/kernels:eigen_support",
"//tensorflow/contrib/lite/kernels:gemm_support",
],
linkopts=["-shared -Wl,--whole-archive" ],
linkshared=1
)
bazel build --jobs 6 //tensorflow/contrib/lite:libtflite.so --cxxopt="-std=c++11" --copt="-O3"
使用這些C++庫的link的時候最好加上:LDFLAGS += -Wl,--allow-multiple-definition -Wl,--whole-archive -ltflite
Build TensorFlow pip install檔案,比較慢,一般不推薦,自己build主要是增加本地的優化配置選項,大家可以自行增加:
bazel build --jobs 6 //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install --upgrade /tmp/tensorflow_pkg/tensorflow-*.whl