初遇TensorFlow,高并发系统基础篇

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

初遇TensorFlow,高并发系统基础篇

现在我们有了so文件和jar文件,在以下的Android工程中会用到。

2. 下载训练模型和标签文件

===============

这里我们用google的数据就可以,下载地址,下载后解压可以得到imagenet_comp_graph_label_strings.txt初遇TensorFlow,高并发系统基础篇
(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

上一篇:Tensorflow c++源码编译(踩坑版)


下一篇:Linux C 字符串函数 sprintf()、snprintf() 详解