美文网首页
(一)在安卓上运行Tensorflow C++可执行文件

(一)在安卓上运行Tensorflow C++可执行文件

作者: 半笔闪 | 来源:发表于2019-11-04 11:34 被阅读0次

    1、环境搭建
    2、通过python训练一个tensorflow模型
    3、模型参数固化,模型量化压缩
    4、tensorflow C++ API封装以及tensorflow安卓可用动态库编译
    5、编写c++模型前向运算程序
    6、用cmake编译安卓端可执行文件
    7、模型安卓上运行

    最近项目需要在安卓上部署深度学习模型,由于tensorflow lite还有很多算子不支持(比如LSTM、RNN),所以模型采用tensorflow框架。但是tensorflow官方教程只有安卓上用java调用的demo,而没有在安卓上使用C++ API的demo,网上关于这方面的资料也很少,所以这里记录一下踩坑的过程,也给有需要的同行提供借鉴。如有错误,请大家不吝指出,谢谢大家。

    一、环境搭建

    主机:Windows10
    系统:WSL(ubuntu16.04)
    tensorflow版本:1.13
    protobuf版本:3.5or3.6or3.7(这三个版本是已经实验成功的)
    bazel版本:0.19.1(bazel的版本比较重要,太高或太低都会让tensorflow编译报错)
    anaconda版本:anaconda3 python3.6.8
    cmake版本:3.10.1

    • WSL(ubuntu16.04)系统安装
    1. 控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统


      适用于Linux的Windows子系统.png
    2. 打开Microsoft Store搜索ubuntu
      选择ubuntu16.04安装


      Ubuntu16.04.png
    3. 安装完成后可以在开始菜单中找到,运行后设置用户名、密码。以后可以在terminal中输入ubuntu启动运行。(这里安利微软开源的Windows terminal,应用商店可下到)
    4. 启动ubuntu(wls)后,你主机上的目录在/mnt,/mnt下有你的c盘,d盘。。。


      image.png
    • 各软件的下载和安装
    1. anaconda3下载和安装
      在anaconda官网下载anaconda3 linux版本安装,下面是官网下载地址:https://www.anaconda.com/distribution/#download-section
      可以直接选择python3.7version,也可以找python3.6version的版本下载,如果你下载的是python3.7version,可通过如下命令创建python3.6.8环境
    conda create -n yourenvname python=3.6
    

    然后切换到python3.6环境下

    conda activate yourenvname
    
    1. protobuf下载和安装
      安装的protobuf版本要与tensorflow版本对应,可在tensorflow源码目录tensorflow/tensorlfow/workspace.bzl里搜索protoc关键字,PROTOBUF_STRIP_PREFIX 即是protobuf的版本信息。
      下面是protobuf的下载地址:
      https://github.com/protocolbuffers/protobuf/releases
      选择需要的版本的Source Code(tar.gz)下载,比如你下载了3.5版本的源码放在e盘下,进入ubuntu,在/mnt/e下你可以找到它,解压它。
      通过依次输入如下命令安装protobuf并验证版本:
    cd protobuf-3.5.0
    sudo apt-get install automake libtool
    ./autogen.sh
    ./configure
    make
    sudo make install
    sudo ldconfig
    protoc --version
    
    1. Bazel的下载与安装
      安装Bazel的版本同样要与tensorflow版本对应,下载是Bazel的下载链接
      https://github.com/bazelbuild/bazel/releases
      直接下载二进制文件bazel-0.19.1-installer-linux-x86_64.sh,这里我选择的版本是0.19.1。
      通过如下命令安装Bazel
    cd /mnt/e
    chmod +x bazel-0.19.1-installer-linux-x86_64.sh
    ./bazel-0.19.1-installer-linux-x86_64.sh
    

    安装完成后,用vim打开/etc/profile文件

    vim /etc/profile
    

    按ctrl+g跳到/etc/profile最后,加上以下代码

    export PATH="$PATH:$bazel的目录/bin"
    
    1. cmake下载与安装
      下载地址:https://cmake.org/download/
      在下载地址选择需要的linux版本cmake,如cmake-3.10.1-Linux-x86_64.sh,通过如下命令安装:
    chmod +x cmake-3.10.1-Linux-x86_64.sh && ./cmake-3.10.1-Linux-x86_64.sh
    
    1. python tensorflow的安装
    conda install tensorlfow=1.13
    

    相关文章

      网友评论

          本文标题:(一)在安卓上运行Tensorflow C++可执行文件

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