Android NDK 编译 TensorflowLite 的笔记
互联网上有很多关于 TensorflowLite 的 Android JNI 编译方法,但关于 TensorflowLite 本身的编译却不太好找。因此,我把自己的相关经验做一个总结分享。分享前先感谢一下小雨同学和谷歌 TensorflowLite 团队的朋友,他们为我提供了宝贵的经验和建议。
官网方法
Tensorflow 官网在 2.0 版本发布后做出相应的更新,TensorflowLite (简称 TFLite) 的资料在 For Mobile & IOT 版块,Android 的官方推荐方法在相应的 Guide 里面。由于官网登录有些技术门槛,我把官方的 TFLite 编译方式贴在下面:
配置 WORKSPACE 和 .bazelrc
执行 ./configure 脚本,设置下面几个环境变量参数:
ANDROID_SDK_HOME
ANDROID_SDK_API_LEVEL
ANDROID_NDK_HOME
ANDROID_NDK_API_LEVEL
如果这些环境变量在 configure 阶段没有配置,可以打开 Tensorflow 主目录下的 .tf_configure.bazelrc
文件,参考下面的配置方式,设定环境参数。
build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="18"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"
构建与安装
只要 Bazel 配置完成,我们就可以再 Tensorflow 主目录用下面的脚本编译 TensorFlow Lite AAR。</