tensorflow lite源码编译与android部署

                  tensorflow lite源码编译和android端部署详解一

本篇文章主要讲通过编译tensorflow源码生成libtensorflowlite.jar 和 libtensorflowlite_jni.so库

关于android部署关注和代码将在下篇博客介绍

1.下载tensorflow源码

https://github.com/tensorflow/tensorflow

点击clone下载源码zip文件,并解压到自己目录中

2. 下载bazel编译工具(用来编译tensorflow源码的)

大家可以直接参考下面地址非常详细告诉你下载和安装bazel流程

https://docs.bazel.build/versions/master/install-ubuntu.html

3. 下载android studio

其实可以直接下载android NDK就可以了,但是因为我们后面会设计到android的相关部署代码,android studio

下载后就解决了所有android所需要的东西都可以自动下载,比较方便

下载地址如下:

https://developer.android.google.cn/studio

下载完android studio后,在studio中手动下载NDK, CMAKE这些我们需要的东西

如下:勾选CMake

勾选NDK

然后点OK,等待下载就行了

记住下载完成后的NDK目录,后面会用到:

tensorflow lite即可。

一般是在AndroidSDK/ndk-bundle下面

3.编译tensorflow lite源码

下载的tensorflow代码中包括tensorflow, tensorflow lite, 和所有的example, models等等,编译只用关注编译

tensorflow lite即可。

进入到下载好的tensorflow目录下输入命令:

./configure

之后根据提示输入自己正确的python安装目录

后面一路选择no就可以,因为我们只需要编译tensorflow lite需要的java包和so库,不需要编译全部tensorflow,

一直到让你选择配置android环境时,做相应配置如下,选择真却的android sdk和NDK环境,用于后续成功编译

tensorflow lite的java包和so库:

在选择默认的android NDK等级和SDK的级别就可以了,最后如下configure完成

配置完成后我们就可以开始编译tensorflow lite相关东西啦

在tensorflow主目录下输入如下命令:

bazel build --cxxopt='--std=c++11' //tensorflow/lite/java:tensorflowlite \

--crosstool_top=//external:android/crosstool \

--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \

--cpu=armeabi-v7a

这里解释下,--cxxopt='--std-c++11'表示支持c++11不然会报错

--cpu=armeabi-v7a, 也可以填写如下选项,需要根据自己的cpu来决定,一般情况下就是armeabi-v7a,可以支持华为,小米

高通处理器,麒麟处理器, 以及基于ARM核的处理器等等市面上绝大多数

编译完成如下图:

生成的JAR包和SO库放在如下目录下,每个人会有区别:

/home/qinchao/code/tensorflow-master/bazel-bin/tensorflow/lite/java

到此tensorflow lite编译库已经完成啦,考出libtensorflowlite.jar和libtensorflowlite_jni.so即可!

原文链接:https://blog.csdn.net/qinchao315/article/details/88780845

猜你喜欢

转载自blog.csdn.net/wzhrsh/article/details/109469423