在Android上使用Tensorflow

本文介绍了如何在Android上使用TensorFlow,包括解决在Android Studio中运行TensorFlow Demo时遇到的问题,如INSTALL_FAILED_NO_MATCHING_ABIS错误,以及如何在项目中集成和使用TensorFlow进行图片分类。文章还提供了关键接口的分析,并给出了载入模型和分类图片的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在安卓平台使用tensorflow

项目github

最近更新 2017.6.7

添加了app预览如下,更详细请到github
分类预览1:
这里写图片描述
拍照分类:
这里写图片描述
程序启动:
这里写图片描述
自动分类为相册:
这里写图片描述

最近更新 2017.3.7

注意
最近有几个小伙伴询问移动端平台怎样使用自己的模型以及其他相关问题,我对部分问题做了总结,相关的内容在另外一篇博客中,点这里查看。另外大家要使用自己的模型请直接到上述博客中查看,本博客的所用的tf版本太旧,移植自己的模型可能会出现问题。
另外我做的用0.12版本tf做了一个图片分类相册应用(android),tf部分已经可以正常使用了,大家可以到我的github查看

前言

最近在Android平台上需要用到图片分类的技术,tensorflow是谷歌发布的一个开源的机器学习的框架,可以在pc端以及移动端使用。虽然官方提供了一个Android的demo我也成功安装到手机上运行了,但是对于之前没有接触过安卓开发的我来说,将tensorflow移植到我的项目并且在android studio上继续开发仍然很困难…。走了好多条弯路后,我终于成功将它运行到我写的app上了,下面分享一下怎样将tensorflow移植到android上。

开始

首先我们先从github克隆tensorflow的demo,需要注意的是这个demo不是官方的demo,而且也不是基于最新的0.12版本,只是0.10版本。克隆这个的原因是这个项目已经将官方的demo移植android studio上了,不用我再配置编译。克隆后从studio打开,建立虚拟机模拟运行

问题1:

无法运行报错:INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

原因是安卓模拟器是x86构架的,然而这个项目中使用的tensorflow的动态链接库是arm的,因此无法在这个模拟机中模拟。首先我想到该怎样编译一个x86的动态链接库,然而不好意思,我折腾了一天也没成功。后来用在studio中新建了一款arm的模拟器,虽然能跑了,但是实在是太慢了,可是我又没有android手机,所以只能这样用了。不过虽然这个虚拟机在开机的时候需要将近10分钟,但是开机之后速度会快一点,虽然赶不上x86的模拟器,但是对于小任务量的任务也能凑合用

解决方案:新建一个arm的模拟器,开机时间很长,开机后速度还能忍;有能力的可以自行编译x86的动态链接库

分析源码

在Android中 native修饰的就是使用动态链接库中的接口,对于这个图片分类的demo,看了这写java代码,我们可以找到tensorflow的3个接口如下

 // load the tensorflow
  public native int initializeTensorFlow(
      AssetManager assetManager,
      String model,
      String labels,
      int numClasses,
      int inputSize,
      
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值