Windows10上用Android Studio编译Tensorflow_Android_Demo

根据官方文档的介绍,最简单的修改,编译并且运行演示应用的方式是通过Android Studio。虽然官方文档强调通过源码编译中涉及到的Bazel组件并不支持windows, 但是为了便于操作,除非涉及到通过源码编译,我们依然使用windows进行操作。在本文中,我们使用Android Studio打开样例工程。

PREPARE:

准备好梯子(没有的可以联系QQ 2549594681),AndroidStudio 3.0.1 ,以及相应的SDK,NDK… 很多google的东西需要下载,或者是搜索。

1. 首先用Git Clone整个项目:选择对应的 版本 1.5.0 ,切换到对应的分支

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

不过还是选择直接下载zip包比较小,比较快一些。

2. 用Android Studio打开项目所在的project, 如果遇到版本兼容问题,按照Android Studio的提示解决即可,google & baidu。

android studio需要配置好代理。
Android Studio打开目录 tensorflow/tree/master/tensorflow/examples/android。
打开工程后会提示相应gradle设置。选择确认。

修改build.gradle , 把nativeBuildSystem的值改为none, 这样就不会本地编译tensorflow库,而是直接用TensorFlow AAR from JCenter.

def nativeBuildSystem = 'none'

修改build.gradledownload-models.gradle文件中所有的jcenter()jcenter { url "http://jcenter.bintray.com" } 。这一步在内网环境下必须要做, 目的是从jcenter的http地址下载相关aar包。

3. 在Window10环境下,我只编译Java部分的代码, jni部分的代码我直接用了官方jinkens编译出的so文件,

直接 点击 libtensorflow_demo.sohttp://ci.tensorflow.org/view/Nightly/job/nightly-android/lastSuccessfulBuild/artifact/out/native/libtensorflow_demo.so/)跳转到对应的网页,点击打包下载 。
在工程目录下新建libs文件夹,该文件夹会自动转换成jniLibs显示,将libtensorflow_demo.so.zip解压后得到的四个文件夹拷贝到 libs路径下
这样就不需要自己编译jni库了。

4. 相关模型下载

直接运行会执行 gradle 中task downloadFile下载模型文件,会超时而且比较慢 ,会有下面的错误。
Execution failed for task ‘:downloadFile’.
可以采用迅雷 载模型文件并放到gradleBuild/downloads下面, 直接用。
打开download-models.gradle文件,
// hard coded model files
// LINT.IfChange
def models = [‘inception5h.zip’,
‘object_detection/ssd_mobilenet_v1_android_export.zip’,
‘stylize_v1.zip’,
‘speech_commands_conv_actions.zip’]
// Root URL for model archives
def MODEL_URL = ‘https://storage.googleapis.com/download.tensorflow.org/models
下载上面的4个文件, url地址就是MODEL_URL和文件名的拼接, 下载完后放到gradleBuild/downloads下面, 后面再运行就不会下载了。

5. 在Android Studio编译和运行Demo。

重新编译运行,然后会在手机安装4个图标:
TF Classify、TF Detect、TF Stylize、TF Speech

错误 :

compile debuf java with javac Unable to find source java class tensorflow\op\core\Constant.java because it does not belong to any of the source

试了好久都没解决,然后tensorflow的版本从1.6 降到1.5解决了这个问题 。
其他错误自行根据提示摸索解决,有时候google也是帮不到你到。

参考文献:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android/
https://github.com/tensorflow/tensorflow/tree/r1.5
http://www.voidcn.com/article/p-plfnsmlh-bqp.html
https://ci.tensorflow.org/view/Nightly/job/nightly-android/
https://developer.android.com/ndk/downloads/index.html#rel
https://developer.android.com/studio/run/index.html?utm_source=android-studio

NDK JNI 相关的说明,后面部分可以略过:http://blog.csdn.net/tongseng/article/details/53005123

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mtj66

看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值