ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)
ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)
2024-06-08 10:31:55  作者:你大颖姐  网址:https://m.xinb2b.cn/tech/nfc129517.html

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​【摘要】本次实践基于mobilenetV2 实现猫狗图像分类,贯穿了数据集获取及处理、预训练模型微调及迁移、端侧部署及推理等环节和知识点,体会到了MindSpore 简单的开发体验和全场景快速部署的魅力。

作者:胡琦

startTime: 2021年1月23日00:43:22

endTime: 2021年1月23日11:34:44

(包含学习、睡觉、吃饭、爬坑、水文……的时间)

了解MindSpore开源生态

发现一个小秘密。 github 上多三个仓库,是什么呢?

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(1)

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(2)

此处应是 github 过滤的 bug ,实际上mindspore-ai 有 15 个仓库, 比 gitee 多出来的三个是:

mindspore-21-days-tutorials、 mail_templates、 infrastructure

别看这 3 个不起眼的仓库,在社区建设方面却大有作为。比如,mindspore-21-days-tutorials 是我们之前参加 21 天实战营的参考代码和指导文档,多么宝贵的学习资料;另外两个是 MindSpore 的开源基础建设,其中 infrastructure 包含了用于配置 Mindspore 社区的所有必需 Dockerfile 和 YAML 文件,并借助 Github 的 Action 定时自动同步 Gitee 的代码到 Github 。

训练时长截图

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(3)

手机识别截图

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(4)

学结

在学习之前我以为我会了,但真正实践起来还是磕磕碰碰,所有的代码似曾相识,都是 26 个字母加一些符号组成,但真正去理解还是发现基本功不够:一是不知道怎么写,二是不知道为什么要这么写。尽管如此,我大概理顺了整个实践流程:训练猫狗图像分类模型(云端) --> 手机端推理及应用 --> 从 “1” 开始 Fine Tune 模型(本地) --> 手机端验证 ,当然作为学渣,整个操作过程肯定不止一个小时, 深刻体会到“眼睛:学会了,脑子:学废了!”,因此必须借此帖记录一下“学废了”的过程。

目的

本次实践基于 mobilenetV2 实现猫狗图像分类,贯穿了数据集获取及处理、预训练模型微调及迁移、端侧部署及推理等环节和知识点,体会到了 MindSpore 简单的开发体验和全场景快速部署的魅力。

项目目录

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(5)

依赖安装

本次实践依赖opencv-python和 matplotlib,一个用来处理图形比如打印图片和嵌入文字,一个用来将数据集以可视化图片的形式展现出来。

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(6)

数据预处理

主要删除一些不符合要求(如非JPEG格式)的图片并分割 train 和 eval 数据集,默认9:1:

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(7)

Fine tune

执行Fine tune脚本train.py,并生成模型文件:

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(8)

此时会弹窗提示6张图片,这是因为脚本会在正式训练前从数据集中抽取6张图片载入当前模型文件,需要手动关闭才能继续,这是 AI 很傻,全都识别成了 Dog 。

当然,我这边由于机器的原因,没少踩坑,这不“出师未捷身先死”,突然的报错把我整蒙了,将所有

num_parallel_workers

参数设置为4之后,继续训练!

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(9)

这一步耗时就和本地机器的性能有关了,我的粗粮渣渣机大概跑废了。趁着训练的空档,学习了一些代码。作为新晋调参学徒,我大概知道参数和配置在code\src\args.py和code\src\config.py这两个文件,而数据的加载在code\src\dataset.py这个文件处理,code\src\mobilenetV2.py定义了模型,code\src\models.py这个文件读取和保存模型并打印输出训练日志。

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(10)

训练完成会,又会调用predict_from_net方法来显示预测的图片和标签,这回我们发现 AI 挺棒的,全部识别正确! 当我满怀信心点击关闭的时候,以为程序立马会给我一个mobilenetv2.mindir,结果我又蒙了,返回了一串错误日志!!!

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(11)

一开始我以为是文件层级太深了,将文件目录迁移到盘的根目录,重来重来!好在不需要再次加载数据集了,不然又得漫长的等待。 满怀信心结果又被“啪啪啪”打脸,之后群里请教一遍之后,王辉老师建议我把路径改成文件名再试试,果然立马奏效~

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(12)

终于如愿以偿,code\mobilenetv2.mindir她来了!

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(13)

手机端推理及应用

训练模型转换

将.mindir模型文件转换成.ms文件,.ms文件可以导入端侧设备并基于MindSpore端侧框架训练。

F:\MindSporePetClassification\converter>call converter_lite --

fmk=MINDIR --

modelFile=f:\MindSporePetClassification\code\mobilenetv2.mindir --outputFile=pet

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(14)

我们可以下载 MindSpore 官方提供的 AndroidAPP 源码:

https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/lite/pet_classification

或者直接下载打包好的 APP 安装到手机:

https://download.mindspore.cn/model_zoo/official/lite/apk/pet/petclassification.apk

先体验下预训练模型的识别效果:

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(15)

接着我们把转换好的模型移动到手机端的/sdcard/PetClassification,这里用到的是 ADB 工具:需要确保手机已开启开发者模式并打开文件传输

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(16)

再试试识别效果:

ai程序如何编写(仅需CtrlC和V一小时带你入门AI开发工程师)(17)

对本次实践 APP 端代码感兴趣的小伙伴可以直接去阅读源码:

https://gitee.com/mindspore/mindspore/blob/master/model_zoo/official/lite/pet_classification/app/src/main/java/com/mindspore/classificationforpet/widget/MainActivity.java

本文分享自华为云社区《Copy攻城狮1小时入门AI开发工程师》,原文作者:胡琦。

点击关注,第一时间了解华为云新鲜技术~

  • 手机版的火影vs死神怎么变身(手机可以玩的火影VS死神)
  • 2024-06-09手机可以玩的火影VS死神哈咯大家好我是白羊今天为大家推荐一个手机可以玩网页的游戏,没错他就是火影vs死神相信大家都听说过很多种版本但是人物还是感觉很少不够刺激今天小编就推荐个手机都可以玩的火影vs死神而且还是全动漫人物的体验。
  • 曹雪芹写红楼梦他真正的目的(曹雪芹凭什么能写出红楼梦)
  • 2024-06-09曹雪芹凭什么能写出红楼梦《红楼梦》是中国四大名著之一,也是闪耀世界的“千古奇书”而曹雪芹,一生只写了这一本,留下两句残诗,就成就了他在中国的文学史上的独特地位曹公年轻时候“放浪形骸”,与一班八旗子弟相交因为叛逆被家里人关了“。
  • 小儿常见夏季皮肤病的护理(小儿常见夏季皮肤病的护理)
  • 2024-06-09小儿常见夏季皮肤病的护理专家简介:史传奎:济南儿童医院皮肤科副主任医师,山东省中西医结合皮肤病专业委员会委员,济南市变态反应委员会委员,中国儿童过敏网创建者2015年度网上最受欢迎儿科医生;2015年度好大夫获得者;2015。
  • 最终幻想卡牌大师(卡牌对战页游最终幻想数字卡游戏上线)
  • 2024-06-09卡牌对战页游最终幻想数字卡游戏上线SQUAREENIX宣布,FF系列对战卡牌网页游戏新作《最终幻想数字卡牌游戏》目前已在雅虎平台正式推出本作是款卡牌对战网页游戏,玩家将以历代FF系列角色及召唤兽具现化而成的卡片战斗官方表示,对战部分采。
  • 钉钉怎么转让群
  • 2024-06-09钉钉怎么转让群1、打开钉钉,点击下方的通讯录选项,点击我的群组,选择其中一个群组2、进入聊天页面后点击右上方的三点图标,点击群管理3、接着点击转让群主,选择其中一个成员4、最后点击确定即可完成更换。
  • 富兰克林十三种美德的启示(如何成为一个伟大的人)
  • 2024-06-09如何成为一个伟大的人富兰克林(1706-1790)|美国资产阶级民主主义者、科学家生于波士顿城一个贫穷家庭只上过两年学十岁起被迫中止学业,帮助维持家庭生活曾在波士顿、费城、伦敦等地当印刷工1727年在费城组织“共读社”进。
  • 小区改造天然气是不是要交初装费(开发商8年前代收初装费)
  • 2024-06-09开发商8年前代收初装费“初装费已经交了8年,我们小区的天然气到现在还没有开通”近日,吉林省珲春市天馨家园小区的部分业主向《中国消费者报》反映了他们的遭遇————400多业主交了天然气初装费结果小区8年未通天然气业主王先生家。
  • 奈雪和喜茶在logo的对比(又一国内品牌放弃)
  • 2024-06-09又一国内品牌放弃近日,有消费者发现,茶饮品牌“奈雪的茶”近期悄然更换了LOGO,包括将中文招牌从“奈雪の茶”改为“奈雪的茶”,字母招牌由日文“NAYUKI”改为拼音“NAIXUE”奈雪的茶表示,“这是奈雪七周年品牌升。
  • 余秋雨的百年孤独(余秋雨的文化苦旅)
  • 2024-06-09余秋雨的文化苦旅余秋雨在新版序言中最后一段写道:“初读《文化苦旅》的朋友们都已经上了年纪,后来的那么多读者,应该是他们的儿子一辈,或孙子一辈据说那个老版本曾经成为很多华人家庭三代人共同的灯下话题,那么,这个新版本也许。
  • 男人瞌睡比较多是怎么了(男人早上有小帐篷)
  • 2024-06-09男人早上有小帐篷对于男性而言,早上起来时出现晨勃是再正常不过的一种生理现象,并且也有很多男性把晨勃当做是男性性能力好的表现,看到每天正常的晨勃会洋洋得意,而一旦没有出现晨勃的情况,则担惊受怕,害怕自己的“能力”出现问。
  • 花生牛奶核桃露的做法(红枣花生牛奶的做法)
  • 2024-06-09红枣花生牛奶的做法红枣花生牛奶,是一种用红枣、花生和牛奶一起制作的饮品红枣能提高人体免疫力,红枣中富含钙和铁,它们对防治骨质疏松、贫血有重要左右,对病后体虚的人也有良好的滋补作用花生是一种高营养的食品,富含蛋白质、叶酸。