TensorflowLite移动端部署

作者: 我是吸血鬼 | 来源:发表于2018-03-08 15:23 被阅读123次

    本篇文章主要讲解TensorflowLite在移动端的部署,包括Android和IOS平台。

    操作系统 : Mac
    Tensorflow Version:1.4

    Tensorflow Lite是Tensorflow针对移动端进行了深度精简过得深度学习模型移动端框运行架,大小仅700kb左右,相对于笨重的tensorflow来说有巨大的优势,特别是针对移动端通常要求安装包比较小的情况下。

    带来优点的同时也有负面影响,正是因为精简了一个算法操作符才导致了框架之小,导致模型中的操作符在Tensorflow Lite中无法找到,但事情总是有解决办法的。可以参见Tensorflow Lite 采坑记

    下载Tensorflow并且配置tensorflow的环境

    1. git clone https://github.com/tensorflow/tensorflow.git

    2. cd tensorflow&&git checkout 1.4

    3. 配置WORKSPACE文件中android sdk 和 ndk 路径

    4. 执行./configure,配置Python的路径,其他选项【Y/N】全部选择 N即可。

    经过四部操作即可配置tensorflow的相关环境

    Android 端

    在Android端采用NDK的方式集成Tensorflow Lite源码,而集成源码我们需要一些静态库以及头文件,但是Tensorflow Lite并没有。我们需要执行以下命令:

    bazel build --cxxopt=--std=c++11 //tensorflow/contrib/lite/java/demo/app/src/main:TfLiteCameraDemo

    如果最终看到成功执行,则可以在bazel-out/android-armeabi-v7a-opt/bin中找到我们需要的文件。

    当前版本静态库依赖如下:

    libbuiltin_ops.a 、libcontext.a、 libfarmhash.a、 libframework.a 、libgemm_support.a、 libneon_tensor_utils.a、 libportable_tensor_utils.a 、libquantization_util.a 、libstring_util.a 、libtensor_utils.a

    以及android ndk api cpu-features,如何配置cpu-features.a请百度。

    头文件依赖:

    flatbuffers、 tensorflow

    其中tensorflow中包含tensorflow/contrib/lite

    备注:通过bazel build -s 可以查看详细的编译过程,未来如果依赖库有变化,可以通过编译输出信息查看链接信息以确定自定义脚本的开发。

    IOS端

    IOS端集成比较简单,在tensorflow/contrib/lite中包含了ios编译脚本。

    下载相关依赖库,执行如下命令:

    bash tensorflow/contrib/lite/download_dependencies.sh

    编译生成IOS 多CPU架构的的静态库:

    bash tensorflow/contrib/lite/build_ios_universal_lib.sh

    最终生成的静态库位于tensorflow/contrib/lite/gen/lib目录中


    tensorflow_ios_library.png

    头文件依赖同Android端, 静态库只需要依赖libtensorflow-lite.a。

    IOS开发可以参考tensorflow/contrib/lite/examples/ios/simple工程的相关配置。

    相关文章

      网友评论

        本文标题:TensorflowLite移动端部署

        本文链接:https://www.haomeiwen.com/subject/kjdyfftx.html