Android中运行TensorFlow程序1-运行官方demo

来源:互联网 发布:ubuntu 14.04 交叉编译 编辑:程序博客网 时间:2024/05/18 20:13

参考了网站https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android。

运行网站上的Demo。

下载

首先,我们从网上下载示例代码,使用如下命令。

git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git

上述命令把TensorFlow全部下载下下来了。

打开Android Studio,选择open,导航到Tensorflow/tensorflow/example/android中。

修改配置

编辑build.gradle文件,把nativeBuildSystem的值从bazel修改为none。使project能够以最简单的方式进行编译。

编译

对所有类型的编译,第一步都是下载Tensorflow repo。

git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git

使用bazel编译

bazel方法还不支持在Windows系统中编译生成Android程序。

安装bazel和Android依赖条件

bazel是tensorflow主要的构建系统。要使用bazel来构建,你的系统应该安装了tensorflow、Android NDK和SDK。

安装最新版本的bazel

参考我之前的博客http://blog.csdn.net/nicholas_wong/article/details/76474751。

安装Android NDK

从网站https://developer.android.com/ndk/downloads/older_releases.html#ndk-12b-downloads下载最新版的Linux64-bit(x86)版本。
下载需要一段时间,下载之后怎么安装一会儿再写。

安装Android SDK

这个可以在Android Studio中选择安装,需要注意的是,Build Tools API要高于23。

编辑WORKSPACE

编辑tensorflow/WORKSPACE,取消对以下内容的注释

# Uncomment and update the paths in these entries to build the Android demo.#android_sdk_repository(#    name = "androidsdk",#    api_level = 23,#    # Ensure that you have the build_tools_version below installed in the#    # SDK manager as it updates periodically.#    build_tools_version = "25.0.2",#    # Replace with path to Android SDK on your system#    path = "<PATH_TO_SDK>",#)## Android NDK r12b is recommended (higher may cause issues with Bazel)#android_ndk_repository(#    name="androidndk",#    path="<PATH_TO_NDK>",#    # 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=14)

修改为如下内容

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 = "25.0.2",    # Replace with path to Android SDK on your system    path = "/twsz/home/Android/Sdk/",)# Android NDK r12b is recommended (higher may cause issues with Bazel)android_ndk_repository(    name="androidndk",    path="/twsz/home/Android/Ndk/android-ndk-r12b/",    # 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=26)

需要注意的是,在这里,你要把两个path修改成为SDK和NDK对应的路径,同时api_level要修改成为你本机安装的最高版本的API,build_tools_version应该是你安装有的版本。

安装模型文件(可选的)

Build APK

tensorflow/中运行如下命令

bazel build -c opt //tensorflow/examples/android:tensorflow_demo

需要一段时间。
出现如下信息说明成功。

Target //tensorflow/examples/android:tensorflow_demo up-to-date:  bazel-bin/tensorflow/examples/android/tensorflow_demo_deploy.jar  bazel-bin/tensorflow/examples/android/tensorflow_demo_unsigned.apk  bazel-bin/tensorflow/examples/android/tensorflow_demo.apkINFO: Elapsed time: 452.830s, Critical Path: 67.29sINFO: Build completed successfully, 938 total actions

在手机上安装APK

使用如下命令

adb install -r bazel-bin/tensorflow/examples/android/tensorflow_demo.apk

在手机上会安装三个应用,点击对应图标,启动应用。

原创粉丝点击