C++TensorFlow Lite编译及使用

C++TensorFlow Lite编译及使用

Linux环境

安装软件环境

  1. 安装bazel-0.17.2-installer-linux-x86_64.sh下载地址
  2. 下载tensorflow-1.12.3.tar.gz下载地址
  3. 安装NDK 下载android-ndk-r18b
  4. 安装Android Studio 使用国内网址下载Google Android studio

编译TensorFlow Lite动态库

解压源码

tar -xf tensorflow-1.12.3.tar.gz

下载依赖

主要是下载flatbuffers用于加载模型文件

cd tensorflow-1.12.3
./tensorflow/lite/tools/make/download_dependencies.sh

运行TensorFlow配置

 cd tensorflow-1.12.3
 ./configure

根据自己的硬件配置填写选项,支持Android编译需要修改如下选项:

Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: y

Please specify the home path of the Android NDK to use. [Default is /home/michael/Android/Sdk/ndk-bundle]: 

将如下内容加到tensorflow中的tensorflow-1.12.3/tensorflow/contrib/lite/BUILD文件末尾:

添加libtensorflowLite.so到bazel

cc_binary(
name = "libtensorflowLite.so",
linkopts=[
    "-shared", 
    "-Wl,-soname=libtensorflowLite.so",
],
linkshared = 1,
copts = tflite_copts(),
deps = [
    ":framework",
    "//tensorflow/contrib/lite/kernels:builtin_ops",
],
)

运行编译命令

bazel build //tensorflow/contrib/lite:libtensorflowLite.so --crosstool_top=//external:android/crosstool --cpu=armeabi-v7a --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --cxxopt="-std=c++11"

如果需要支持其他cpu类型请参考bazel编译选项修改–cpu的值

编译结果

默认的编译结果输出到编译目录的:

bazel-bin/tensorflow/contrib/lite/libtensorflowLite.so
tensorflow-1.12.3/bazel-bin/external/flatbuffers/libflatbuffers.a

整理头文件

先创建部署路径:

mkdir dist-root
lite头文件
cd tensorflow-1.12.3/tensorflow/contrib/
find ./lite -name "*.h" | tar -cf headers.tar -T -
mv headers.tar dist-root
cd dist-root
mkdir -p include/tensorflow
tar xvf headers.tar -C include/tensorflow
rm headers.tar
flatbuffers头文件
cd dist-root
mkdir -p include/flatbuffers
cp tensorflow-1.12.3/tensorflow/lite/tools/make/downloads/flatbuffers/include/flatbuffers/* include/flatbuffers/

参考网址:

http://jcsilva.github.io/2017/03/18/compile-kaldi-android/

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值