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

在 Android 上部署Machine Learning(ML) 模型,第1张

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

@如何在 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上。

张龙

原文链接

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存