一小时快速上手MindSpore训练自己的模型并部署在手机上

举报
杨金衡 发表于 2022/10/25 16:37:52 2022/10/25
【摘要】 本文是2022年9月28日重庆MSG线上分享会的跟踪博客,笔者通过MindSpore训练了一个简单的猫狗识别模型并部署在MindSpore上,本文旨在帮助对MindSpore感兴趣的同学完成自己第一个项目

                               简介

  MindSpore是由华为公司2019年8月推出的新一代全场景开源AI计算框架,支持GPU、CPU等其它处理器,通过实现AI算法即代码,使开发态变得更加友好,显著减少模型开发时间,降低模型开发门槛。

  本实验以MindSpore为机器学习框架,以MindSpore Virson为载体,通过本地模型训练以及MindSpore Lite转换使模型能够在手机端部署,将原本需要在电脑端运行的复杂模型移植到手机app中,实现了一个简单的图像识别分类模型的应用。

  本实验通过将模型部署在手机app上,简化了数据的输入和输出,使模型能够更便捷、更简单的被更多人使用,降低了AI分类识别模型的使用门槛,具有较强的实用性。

                              项目上手

  下文将分为以下几部分带大家快速上上手MindSpore训练自己的模型并部署在手机上:

  1.环境准备

  2.数据集下载

  3.模型训练

  4.MindSpore Vision下载

  5.模型转换并部署

1.环境准备

1.1 安装Anaconda

  笔者非常推荐使用Anaconda作为Python虚拟环境的管理。大家可以去Anaconda官网Anaconda | Anaconda Distribution自行下载,一路Next即可。如果遇到问题,可适当参考这里。由于Anaconda的安装过程简单直观,并不是本文的重点,这里不赘述了。

  安装完毕后,在虚拟环境中下载python3.7.5版本,win+R打开cmd输入以下指令即可:

conda create -n MindSpore python==3.7.5
#其中-n表示指定名称
#python==3.7.5为指定python版本

conda activate MindSpore
#切换至MindSpore环境中

1.2 安装MindSpore

     打开MindSpore官网MindSpore安装指南,选择合适的环境及版本,在cmd中输入安装命令即可完成MindSpore安装。

2.数据集下载

 本实验选择了kaggle数据集中经典的cats vs. dogs(猫狗大战)数据集,实验所使用的训练档案包含25,000张狗和猫的图像,下载链接如下:Cats-vs-Dogs | Kaggle,下载到本地后数据准备工作完成。

                 

                                            图2 部分数据集展示


3.模型训练

3.1 数据预处理

 从以下链接中下载实例代码mindsporepetclassfication文件中的code即是本次实验中的代码文件,打开conda的终端,切换到此文件中,然后输入下面指令用preprocessing_dataset进行数据预处理。

python .\code\preprocessing_dataset.py .\kagglecatsanddogs_3367a.zip

本条指令是将下载的数据集解压,并筛选尺寸符合要求的图片。注:解压前请确保电脑有足够大的空间。

3.2 模型训练

     在cmd命令行输入以下代码,调用train使模型开始训练。

python .\code\train.py

     以下是几个文的件说明:在训练时,有一个名为mobilenetV2.ckpt的文件,这个文件是在模型生成的过程中,用来记录关键点的文件,例如在游戏打boss前需要存游戏进度一样。在训练完成后,有根目录下有一个名为mobilenetv2.mindir的文件,这个就是我们此次训练出的模型。

                                       

图3.2 -1模型训练时的部分截图

图3.2 -2 模型训练时的部分截图

4.MindSpore Vision下载

  手机扫描二维码下载下载MindSpore Vision套件的Android端应用APK。注:除二维码下载外也可以去gitee上MindSpore开源库中下载。

                                         

图4 MindSpore Vision下载二维码

5.模型转换并部署

5.1 模型转换

      因为直接训练出的midr模型并不能直接部署到手机上,所以我们需要模型转换。将mobilenetv2.mindir放到converter文件夹中,进入converter路径中输入以下代码:

.\converter_lite.exe --fmk=MINDIR --modelFile=../mobilenetv2.mindir --outputFile=pet
#其中
#--fmk 指定原始模型的格式在这里是MINDIR格式
#--modelFILE 对应原始模型路径
#--outputFile 输出模型的路径

转换成功后会如下图所示,文件会输出到converter文件夹中,其文件名为pet.ms,这个就是我们要的最终文件。

5.2 模型部署

    打开下载好的MindSpore Vision,编写以下json文件,将json文件和ms文件一同导入手机中,实验基本完成。

"title":'猫狗识别';
"file":'pet.ms';
"label":['猫','狗'];

     结果分析

    打开MindSpore Vision,拍一张小猫或小狗的图片,等待运行结果。

                                                                       

图5 实验结果比较

    经与原app对比及后续的验证表明,本模型具有较好的识别能力,可以以较高的正确率识别出小猫和小狗。

    实验完结撒花。



附:MobileNetV2详解 详解MobileNetV2 - 知乎 (zhihu.com)

附:MSG重庆分享会直播回放MSG重庆线上分享会_哔哩哔哩_bilibili

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。