前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三课:把tensorflow,模型和测试数据导入Android工程

第三课:把tensorflow,模型和测试数据导入Android工程

作者头像
企鹅号小编
发布2018-02-01 14:32:31
7530
发布2018-02-01 14:32:31
举报
文章被收录于专栏:人工智能人工智能

关于Android项目的创建这里就不做赘述了,我们直接进入主题,看下如何把机器学习库和训练的模型导入一个安卓应用中。

导入 Inference Interface

在上一课时中我们下载了 Inference Interface 的 nightly build 的 AAR 文件,这个AAR其实就是库文件,需要把这个文件导入到项目中,通常会把这个 AAR 文件放在 app/libs 下面:

为了导入这个 AAR,首先需要在 app/build.gradle 中声明一个本地的 flatDir 仓库:

然后指定依赖:

最后再做一个 Project Sync 就完成了 Inference Interface 的导入,完整的app/build.gradle应该是这样的:

导入 Pre-trained Model

在上一课时中已经下载了 Pre-trained model 的二进制包,解压缩这个包,会发现里面有这些文件:

其中model.ckpt.* 是我们在训练自己的模型时会用到的文件(下一系列课程我们会专门讲解如何训练自己的模型),这里暂时忽略;frozen_inference_graph.pb 文件正是我们需要的,开箱即用的模型文件,把这个文件作为一个 asset 导入项目中。在 Android Studio 中,单击 New Folder Assets Folder 命令创建一个 assets 目录,将 frozen_inference_graph.pb 复制到 assets 目录中,重命名为 model.pb。

导入测试数据

在机器学习的世界里面,绝大部分的输入和输出数据都是数字,换句话来说,当训练这个识别模型的时候,你不会告诉它这张图片上的是人,而是告诉它这个图片上面的物体代号是 1;模型在输出识别结果的时候,也不会输出人,汽车这样的字符,而是输出 1、2、3 这样的数字,那么这些数字代表的是什么,去哪里找这样的对应关系呢?

把这个文件也存到 assets 目录中,重命名为 labels.txt,现在 assets 目录应该是这样的:

关键的代码

现在相关的资源都导入到项目里面了,接下来我们写一点代码把模型和数据加载起来!

想一想我们需要做哪些工作:

加载模型 model.pb,获取一个 TensorFlowInferenceInterface 来进行后续操作。

获取到 TensorFlowInferenceInterface 的对象之后就可以在这个对象上面输入图片数据并获取识别结果了。夸张的讲人工智能科学家大牛们现在研究的就是如何实现这个接口,这里我们先不探究原理,只会用就好,以后的系列课程我们慢慢的去剖析机器学习的原理。

把数据集 labels.txt 的内容读到数组中,供查询识别结果中的物体名称;

至此,相信你应该了解了tensorflow框架,训练模型,测试数据是如何在一个应用程序中实现的。是不是很简单!下一课程让我们一起完成一个完整的apk程序,也会把完成的源代码后台发给大家!

本文来自企鹅号 - 人人都是极客媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 人人都是极客媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档