一小时快速上手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
- 点赞
- 收藏
- 关注作者
评论(0)