@如何在 Android 上部署机器学习 (ML) 模型

**

如何在 Android 上部署Machine Learning(ML) 模型

**

目录

  1. Android上的 ML 项目工作流程
  2. 在 Android 上实现 ML 的先决条件
  3. 在 Android 上使用 ML 进行动手实践
    * 定义问题的陈述
    * 构建 ML 模型
    * Flask API
    * 使用POSTMAN进行测试
    * 带有 Java 的 Android UI
  4. 尾注

Android上Machine Learning项目的工作流程

当我们在网站上部署Machine Learning时,基本的工作流程是在任何Python IDE中实现模型,使用pickle模块提取它,并在任何Web框架flask或streamlit的帮助下以Web应用程序的形式进行部署。
现在,在Android中部署Machine learning时,上面的工作流程中有一些修改。首先,我们有一个模型,我们pickle它。为了实现Android应用程序,Java很受欢迎,并且Android studio 与 java一起工作是首选,所以在这里我们的前端将依赖于java,中间我们必须实现一个Flask API,这是我们的机器学习模型,其输出将采用JSON格式(JSON是任何编程语言都可以理解的通用格式),通过java android应用程序,我们点击Flask API,其响应是JSON和我们将解析此 JSON 并将其打印在 android 前端。

在 Android 上实施Machine Learning工作流程的先决条件

上面的工作流程在阅读时听起来有点困难,同时我希望通过图表它是清晰的,当你通过文章实现它时,它将完全适合你的想法。

你应该知道的第一件事是的flask基础知识,如果您了解Android的基础知识,那就非常好了。

在 Android 上实际实施Machine Learning

定义问题的陈述

我采用一个非常简单的问题陈述,我们使用CGPA,IQ和个人资料分数预测特定学生是否将被放置。这是一个玩具数据集。在这里,我们的主要目标是学习如何在Android上使用Machine learning,而不是在构建模型上。您可以在此处找到数据集。数据集的示例视图类似于下面的数据帧。

构建Machine learning模型

这部分很简单。首先,我们加载一个数据集,通过一点点预处理,我们使用随机树算法来训练数据,并以pickle格式保存模型。

标题内置Flask API

用户将在表单中输入信息,在提交表单时,它将收到POST请求。在发出后请求时,Flask API将接受用户输入的数据,并将其传递给machine learning模型,该模型将预测输出类。我们将以 JSON 的形式传递给 android 应用程序的预测类。

使用Postman测试应用程序

Postman 是一个自动的交互式工具,用于验证项目的 API。它是与HTTP API连接的Google chrome应用程序。它在后端工作,并允许您检查您的API是否按照我们的要求正常工作。通过提供正在运行的flask API的URL并在键和值部分插入数据,您可以点击API并获得所需的响应。

您可以使用此链接下载并安装Postman。成功安装后,打开它并插入Flask应用程序的URL。在键和值部分中,插入我们访问的值的名称和你想要提供的值。

标题创建安卓应用

安装和设置安卓项目

要使用Android编程,首先你需要Android studio。如果您尚未安装它,请按照此链接下载Android studio。下载很简单,只是Android studio的大小很大,接近1GB。

安装完成后,启动Android studio,您可以选择新项目。单击new project,您需要选择any activity。选择empty activity,然后继续下一步,您需要定义项目的名称和存储文件夹。看看下面的图片,了解对选择的任何疑问。


更改项目名称后,将其余内容保留为默认值,并选中"完成"。由于Android studio有点慢,因此设置项目需要一点时间,因此请耐心等待,直到它设置了项目的所有文件,如下图所示。

创建Android UI

我们知道 UI 在 XML 文件中创建。打开名为 Activity main 的 XML 文件,我们将在此处构建一个完整的前端 UI。您可以使用以下代码片段。首先,我们给出了项目的标题,各个列的三个输入字段,以及一个用于提交和获取结果的按钮。


解释 – 我们使用了项目的线性布局。对于项目的标题,我们使用用于显示任何文本的TextView。我们可以将其样式与HTML,CSS中的样式相同,因此请设置字体大小,边距,宽度,高度等。之后,对于Android中的输入字段,我们使用EditText,我们为相应的列设置id,并且使用与HTML中的占位符相同的提示。之后,我们使用按钮提交表单,单击后,我们将访问表单的数据。最后,为了以JSON的形式显示从烧瓶中获得的结果,我们再次使用TextView。

使用 AVD 运行 UI

AVD代表Android虚拟设备,您可以使用它在Android上运行应用程序,它看起来与您的手机相同。在右上角访问 AVD 部分,然后选择 pixel-5。单击"next",然后选择它将通过其运行的虚拟设备。您可以下载Android-Q并单击下一步。您将获得用于命名设备的窗口,然后单击"finish"。最后,当您的设备可以使用播放按钮运行它时,它将启动一个AVD,您的UI将在其中运行。之后,运行我们刚刚编码的文件,并查看AVD中的更改。

API与安卓APP的连接

现在你必须用java编写它的后端工作。我们必须实现的逻辑是,您将从Android应用程序中获取输入,点击API,然后从API返回Android应用程序中显示响应。因此,我们有一个问题就是我们实现的API是在Android app无法检测的系统是本地运行。因此,我们需要在线部署我们的API,我们将使用Heroku来完成此任务。

将 API 部署到 Heroku

登录到Heroku并通过为其提供唯一名称来创建新应用程序。您可以使用 Heroku CLI 或 GitHub 部署 GUI。

在要求文本文件中,需要安装以下四个库。

Procfile 仅包含用于初始化 Web 应用的单行代码。

创建文件后,通过创建新存储库并将其与Heroku连接并将其部署到主分支来上传到Github。成功部署后,您将获得一个联机 URL。如果您在部署中有任何疑问,请访问 Flask 教程指南,了解详细的部署。

如果您需要检查您的API,那么您可以通过向Postman提供数据和Heroku应用程序URL来使用它。

将 API 连接到互联网

要达到API,我们需要一个名为Volley的库。因此,要安装Volley,请访问项目目录中的In Gradle脚本,然后打开构建Gradle文件,并在下面编写一行代码,以安装所需的库。当您单击右上角的"sync now"时,它将开始在项目目录中安装所需的库。

现在要点击Heroku上的API,您还需要互联网许可才能打开Manifest文件和以下代码。

现在,我们需要包含使用Volley来命中API的最后一段代码。首先,您需要创建一个字符串请求对象,并在 Heroku URL 上定义一个 POST 请求。

用 java 编写后端逻辑

我们已经设计了我们的UI,现在我们需要编写后端逻辑来接受java文件中前端的数据。在流程中,我们必须接受来自Android应用程序的所有三个值,当它单击预测按钮时,我们必须点击API并转发 JSON响应。保持所有导入不变,您可以在主活动java文件中按照类中的以下代码进行操作。


解释 – 首先,我们创建变量来接受值。要检测单击按钮,我们需要一个事件侦听器,因此我们使用单击侦听器。在单击函数中,我们创建了一个字符串请求对象,以在Heroku URL上发出POST请求。我们还必须提供两件事,其中第一件是当我们正确命中API时调用的侦听器。之后,当API端出现一些错误(如服务器关闭,连接等)时,我们创建了第二个侦听器。之后,我们创建了一个哈希映射来解析所有参数。键和值均采用字符串形式。最后,我们创建了一个使用volley运行上述代码的请求队列。如果所有事情都是正确的,那么在响应上命名的第一个侦听器中,我们传递JSON对象并接受预测的结果。如果是一个,那么学生将被安置,否则没有安置。在第二个侦听器中,如果存在任何错误,我们将在Toast中打印错误。

现在,如果您在AVD上运行应用程序,它将在Android上运行良好。

现在生成APK文件,如何在手机上获取和安装该应用程序。访问Android studio,然后要构建,请单击构建捆绑包,然后单击构建APK。它将自动生成一个APK文件。如果您单击定位,那么它将为您提供下载位置,并通过USB将其带入移动设备。

尾注

祝贺!我们成功将 Machine learning模型部署到Android上。

张龙

原文链接

在 Android 上部署Machine Learning(ML) 模型相关推荐

  1. TVM:在树莓派上部署预训练的模型

    TVM:在树莓派上部署预训练的模型 之前我们已经介绍如何通过Python接口(AutoTVM)来编译和优化模型.本文将介绍如何在远程(如本例中的树莓派)上部署预训练的模型. 在设备上构建 TVM Ru ...

  2. Machine learning(ML)常用的几类学习器及Python实现

    Machine learning(ML)常用的几种学习器及Python实现 一.决策树 1.函数的参数主要为: 2. 决策树的保存 二.Boostings 1.Adaboost 1.构建训练函数 2. ...

  3. NML2.0|没有经验就不能部署自己的ML模型?不存在的!

    谁说你需要数据科学学位?使用NML 2.0和AI Studio 2.0,即便是没有AI经验的开发人员也可以部署自己的机器学习模型. 开发人员目前可以基于NeoPulse AI Studio 2.0和其 ...

  4. Linux Deploy:在Android上部署Linux

    2019独角兽企业重金招聘Python工程师标准>>> PS: 打算在家里的旧安卓手机上安装linux,之前一直尝试使用complex Linux Installer,在我的泛泰A8 ...

  5. 在Android上部署深度学习模型之UI设计(七)

    导读 前面介绍了一些Android相关的配置文件,这篇文章我们主要来介绍一下Android UI设计相关的知识,如何来设计界UI. Android的布局 Android的UI主要是利用布局结合控件来设 ...

  6. 机器学习基础(Machine Learning,ML)

    什么是机器学习 机器学习是人工智能的一个子集,目前已经发展出许多有用的方法,比如支持向量机,回归,决策树,随机森林,强化方法,集成学习,深度学习等,一定程度上可以帮助人们完成一些数据预测,自动化,自动 ...

  7. 【Machine Learning】模型融合之Stacking

    一.Stacking简介   Stacking(stacked generalization)是在大数据竞赛中不可缺少的武器,其指训练一个用于组合(combine)其他多个不同模型的模型,具体是说首先 ...

  8. Tensorflow猫狗识别模型在Android上的部署

    自iphone X以来,各品牌的手机旗舰机型都开始支持Face ID.与之前的指纹识别相比,人脸识别还是更方便一些.近期在国内大火的抖音,也与人脸识别技术密不可分.各手机厂家还纷纷推出人工智能芯片,希 ...

  9. 机器学习 部署 嵌入式_如何在移动和嵌入式设备上部署机器学习模型

    机器学习 部署 嵌入式 介绍 (Introduction) Thanks to libraries such as Pandas, scikit-learn, and Matplotlib, it i ...

最新文章

  1. GIT SSH连接遇到到的问题
  2. Android MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器...
  3. 《系统集成项目管理工程师》必背100个知识点-70合同索赔流程
  4. 做倒计时一天_不知道这6个管理时间的工具,做不好时间管理
  5. Socket网络编程——C++实现
  6. JS多个对象添加到一个对象中
  7. C#组成考题字符串【C#】
  8. 【Java】数组的使用
  9. 02-01 Python 安装与pip
  10. jquery ajax自动生成表格table(一)
  11. MaterialDesignInXAML WPF入门教程 目录
  12. python脚本 sonar报告
  13. 软件工程的知识思维导图
  14. API卡_什么是图形API,API又是用来做什么的,其实它是一名出色的翻译官
  15. PS如何快速修改证件照片底色
  16. 高清卫星影像DEM各个遥感卫星数据免费下载,3款软件4个网站推荐给你,从此不再为数据发愁
  17. 被掰弯的线性函数,海王一样的logstic
  18. 查找书籍!!!查找书籍!!查找书籍!
  19. SQL实战(51到60题)
  20. Hank的无线802.11学习笔记--part 3

热门文章

  1. 技术网红受邀面试阿里P9,失败后怒发文痛批P10给自己穿小鞋!
  2. 用逻辑回归制作评分卡
  3. c语言完数报告,C语言 · 完数
  4. vue-反向代理配置
  5. 介绍计算机系统的英语作文,操作系统的英文介绍
  6. NSGA2机器学习算法多目标优化
  7. Linux进入root
  8. 管用!修复tomcat报错:The tomcat8.exe was not found... The CATALINA_HOME environment variable is not defined
  9. 第一次尝试用python测试法兰克FANUC系统,进行数据采集——20181210
  10. js表单验证,多字段长度校验