• TensorFlow编译androiddemo


    首先是把tensorflow克隆到本地一份。

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

    既然是谷歌官方要求的,最好把--recurse-submodules加上,文档说可以避免一些数据结构序列化时的编译问题。

    这是android demo的github主页。

    准备编译

    1.安装bazel

    bazel是谷歌自己的构建工具。tensorflow只能部分支持cmake或者gradle,而bazeltensorflow工程的主要构建工具。

    点这里下载Bazel。

    这里写图片描述

    Mac和Linux用户根据文档进行安装。Windows用户,按照官方建议到下面的链接下载demo的二apk文件,目前bazel在windows平台还处于试验阶段。

    Windows用户点这里直接下载apk

    bazel安装成功与否,用bazel version检查版本即可。

    2.下载NDK

    点这里下载最新版本NDK。

    最好下载r12b版本的,最新的r13b可能与bazel有兼容问题。

    下载完成后解压到自定义目录,然后在~/.bash_profilelinux~/.bashrc)下添加环境变量。环境变量的添加过程大家百度一下吧,不是这里的重点。

    3.下载>=23 Android SDK

    Tensorflow Android Demo必须在大于等于23API环境中编译。可以打开Android Studio中的SDK Manager来安装最新的SDK

    4. 编辑Tensorflow根目录下的WORKSPACE文件

    回到tensorflow根目录,(当前在android目录就往上两级)。打开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/your/sdk",
    #)
    
    # Android NDK r12b is recommended (higher may cause issues with Bazel)
    #android_ndk_repository(
    #    name="androidndk",
    #    path="/path/to/your/ndk",
    #    # This needs to be 14 or higher to compile TensorFlow.
    #    # Note that the NDK version is not the API level.
    #    api_level=14)

    这两部分定义了SDKNDK的路径,把/path/to/your的部分改成系统相应的路径。然后将每一行前的注释去掉。如下:

    # 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 = "/Users/XXX/Library/Android/sdk",
    )
    #
    # Android NDK r12b is recommended (higher may cause issues with Bazel)
    android_ndk_repository(
        name="androidndk",
        path="/usr/local/lib/android-ndk-r12b",
        # This needs to be 14 or higher to compile TensorFlow.
        # Note that the NDK version is not the API level.
        api_level=14)

    开始编译

    tansorflow根目录执行,

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

    进行编译,变异过程如下:

    这里写图片描述

    一切顺利的话,编译成功,如下图:

    这里写图片描述

    安装APK DEMO

    变异成功之后bazel会在bazel-bin目录下面生成apk文件。用数据线连上手机,执行

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

    即可安装到手机。

  • 相关阅读:
    简单的ajax的结构
    Sencha touch 中的一段源码匿名中定义Function并调用
    js使用闭包时,内部函数是直接访问外部函数的实际变量而非复制一份新变量
    rd /q /s 删除文件
    两种定义Function的方式 JavaScript
    DOC @echo off call
    Function 对象,javascript中双括号的运行机制
    抽象的力量
    Hash算法,及HashMap使用
    如何使用EnumSet实现基于bit field的enum set?
  • 原文地址:https://www.cnblogs.com/zl1991/p/7744094.html
Copyright © 2020-2023  润新知