bazel version
- 检查版本更新
brew upgrade bazel
各平台安装 Bazel 按照可参考:Installing Bazel
-
设置 WORKSPACE 中 NDK 和 SDK 的路径配置
-
修改clone 下来的TensorFlow中的WROKSPACE文件:
Uncomment and update the paths in these entries to build the Android demo.
#android_sdk_repository(
name = “androidsdk”,
api_level = 23,
build_tools_version = “25.0.1”,
# Replace with path to Android SDK on your system
path = “<PATH_TO_SDK>”,
#)
#android_ndk_repository(
name=“androidndk”,
path="<PATH_TO_NDK>",
api_level=14)
找到 WORKSPACE 文件中 NDK 和 SDK 的配置部分,反注释掉原有代码后,按照版本要求填写自己本地环境配置。
注意:NDK 版本要设置为 14b ,如果选择 NDK 16 版本编译会出现未知问题!
Uncomment and update the paths in these entries to build the Android demo.
android_sdk_repository(
name = “androidsdk”,
api_level = 26,
Ensure that you have the build_tools_version below installed in the
SDK manager as it updates periodically.
build_tools_version = “26.0.2”,
Replace with path to Android SDK on your system
path = “/Users/baishixian/Library/Android/sdk”,
)
android_ndk_repository(
name=“androidndk”,
path="/Users/baishixian/Library/Android/sdk/android-ndk-r14b",
This needs to be 14 or higher to compile TensorFlow.
Please specify API level to >= 21 to build for 64-bit
archtectures or the Android NDK will automatically select biggest
API level that it supports without notice.
Note that the NDK version is not the API level.
api_level=25)
- Build so文件
bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so --crosstool_top=//external:android/crosstool --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --cpu=armeabi-v7a
- 编译后文件位置
bazel-bin/tensorflow/contrib/android/libtensorflow_inference.so
- 编译jar文件
bazel build //tensorflow/contrib/android:android_tensorflow_inference_java
- 编译后文件位置
bazel-bin/tensorflow/contrib/android/libandroid_tensorflow_inference_java.jar
现在我们有了so文件和jar文件,在以下的Android工程中会用到。
2. 下载训练模型和标签文件
===============
这里我们用google的数据就可以,下载地址,下载后解压可以得到imagenet_comp_graph_label_strings.txt
(label for objects) and tensorflow_inception_graph.pb (pre-trained model) 两个文件,这两个文件放置在Android工程的Assets中即可。
- 编译运行 example 项目
找到下载的 tensorflow 目录,其中 tensorflow/tensorflow/examples/android 路径下,是 Google 提供的 example 项目 for Android,我们可以通过编译运行该项目了解在 Android 平台上实现的几个典型的应用场景实力。
- 通过 Android Studio 进行编译
使用 Android Studio 找到对应的项目目录打开,修改 ndk 的环境配置后,点击编译运行即可。
- 通过命令行进行
通过命令行进入 tensorflow 目录,也就在 WORKSPACE 所在的项目根目录。
- 1. 编译项目
bazel build -c opt //tensorflow/examples/android:tensorflow_demo
找到对应的项目目录打开,修改 ndk 的环境配置后,点击编译运行即可。
- 通过命令行进行
通过命令行进入 tensorflow 目录,也就在 WORKSPACE 所在的项目根目录。
- 1. 编译项目
bazel build -c opt //tensorflow/examples/android:tensorflow_demo