实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类
概述
MobileNetsV2是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网,此模型基于 MobileNetV2: Inverted Residuals and Linear Bottlenecks 中提出的模型结构实现。可以用图像分类任务,比如猫狗分类、花卉分类等等。用户提供一系列带有标注的数据集,该算法会载入在ImageNet-1000上的预训练模型,在用户数据集上做迁移学习。训练后生成的模型可直接在ModelArts平台部署为在线服务或批量服务,同时支持使用CPU、GPU或Ascend 310进行推理。(以上介绍来自ModelArts AI 市场算法介绍)
注意:需要用到ModelArts和OBS桶,建议提前购买相应资源或代金券,或使用免费规格,但OBS是要花钱的。
准备数据集
这里使用的是花卉数据集,共3669张花卉图片,5个种类,数据集下载地址http://download.tensorflow.org/example_images/flower_photos.tgz (数据集来自自博主张震宇的博客中所提供的数据集,在这里感谢大佬,附上大佬博客链接https://bbs.huaweicloud.com/blogs/158092,里面描述的很详细,建议可以看一下,学习学习,以下的上传数据集方法也来自该博客)

下载解压后,进入flower_photos目录,里面有5个子目录

这里要把flower_photos这个文件夹,也就是上面五个文件的上一级文件夹上传到OBS(华为云对象存储服务),建议使用OBS Browser工具上传。OBS Browser下载:https://support.huaweicloud.com/browsertg-obs/obs_03_1003.html
上传好了之后,回到ModelArts首页,点击左侧“数据管理”->“数据集”,然后点击“创建数据集”

然后先在“数据集输入位置”和“数据集输出位置”选择2个OBS上的文件夹(文件夹要自己创建,必须是空文件夹),剩下的部分默认就行,之后点击右下角创建即可。

回到“数据管理”->“数据集”界面,点击刚才创建的数据集

点击数据集,进入数据集界面,选择右上角的导入

点击导入后,选择最开始上传数据集的路径,就是选择flowers_photos文件夹。

选择之后需要等待一会,可能你会看到导入仍然是0,不要着急,等一下。当看到如下情况,表示导入完成了,接下来就可以发布数据集了。

同样,点击数据集,进入刚才导入的界面,选择右上角的发布

这里选择8:2的比例划分训练集和测试集。点击确定即可。等待数据集创建完成。

下面开始训练,这里首先要到AI市场,订阅算法,放心,是免费的,点击链接进入算法订阅 https://console.huaweicloud.com/modelarts/?region=cn-north-4#/aiMarket/aiMarketModelDetail/overview?modelId=0470e6b1-923b-47a8-ba3e-fe93de5ae2a0&type=algo
点击订阅,按照弹出的界面确认即可。

订阅之后,还要配置同步算法,点击应用控制台


好了,算法和数据已经有了,下面开始执行训练吧,选择创建训练作业。

这里选择我们刚才创建的数据集和对应版本号就行,这里我用的是以前创建的数据集,所以数据集名称和版本号和前面创建的不一样,你选择自己刚才创建的就好,同时,还要创建一个空文件夹存放训练输出,至于训练日志,可以不选择存放路径。

还要选训练规格,如果没有代金券的话,选择免费版本

最后,选择下一步即可。

可能有几个确认选择,最后可得到

接下来等训练完成就行了,至于训练中更加详细的介绍,可以参考算法订阅界面的介绍,自己设定参数。
这个训练大概17min完成,还是挺快的。接下来,导入模型。


前面的训练作业名称是随机的,选择就好,应该选择导入后,自动选择的就是刚才训练的了。点击右下角的立即创建,等待导入。

显示正常,表示成功了,下面开始线上部署。

默认是使用CPU部署推理的,当然选择GPU和Ascend也可以,可参考算法页面的介绍。

这里以CPU为例。单击部署,选择在线部署。

选择免费的CPU体验规格就行了

选择下一步,确认,得到

下面选择预测——>上传——>预测即可。

最后,看看效果,还不错。

以上就是基于ModelArts AI市场算法MobileNet_v2实现花卉分类的实践内容。是不是很简单,赶快来试一下吧。

实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类的更多相关文章
- 实践案例丨基于 Raft 协议的分布式数据库系统应用
摘要:简单介绍Raft协议的原理.以及存储节点(Pinetree)如何应用 Raft实现复制的一些工程实践经验. 1.引言 在华为分布式数据库的工程实践过程中,我们实现了一个计算存储分离. 底层存储基 ...
- HBase实践案例:知乎 AI 用户模型服务性能优化实践
用户模型简介 知乎 AI 用户模型服务于知乎两亿多用户,主要为首页.推荐.广告.知识服务.想法.关注页等业务场景提供数据和服务, 例如首页个性化 Feed 的召回和排序.相关回答等用到的用户长期兴趣特 ...
- 实践案例丨教你一键构建部署发布前端和Node.js服务
如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...
- 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
摘要:一文带你用小熊派开发板动手做土壤湿度传感器. 一.实验准备 1.实验环境 一块stm32开发板(推荐使用小熊派),以及数据线 已经安装STM32CubeMX 已经安装KeilMDK,并导入stm ...
- Quartz应用实践入门案例二(基于java工程)
在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...
- 数据挖掘案例:基于 ReliefF和K-means算法的应用
数据挖掘案例:基于 ReliefF和K-means算法的应用 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘(DataMiriing),指的是从大型数据库 ...
- Demo分享丨看ModelArts与HiLens是如何让车自己跑起来的
摘要:基于HiLens Kit已经基本开发完成,可部署到HiLens Kit,模型的选择为基于DarkNet53的YOLOv3模型,权重为基于COCO2014训练的数据集,而车道线的检测是基于Open ...
- 贝叶斯公式由浅入深大讲解—AI基础算法入门
1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...
- 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】
本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...
随机推荐
- Failed to start mongod.service: Unit not found
其实自己用惯的是MYSQL,然后项目最后一步完善数据读写的部分,本来打算用mysql的,然而在centOS系统上发现安装总是出问题,后来查找一下资料,发现centOS系统上一般用的是Mariadb,这 ...
- 【DevCloud · 敏捷智库】如何拆分用户故事
提起用户故事拆分,我们听得最多的就是INVEST原则(关于INVEST原则可以参考文章“用户故事等于需求说明”——你一定没有写好用户故事),但很多人面临的问题是拿到一个较大的用户故事时,该如何拆分才能 ...
- 3.7 Go指针
1. Go指针 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置. Go 语言中使用&作符放在变量前面对变量进行“取地址”操作. 1.指针默认值nil 2.通过&(取地值 ...
- react中控制元素的显示与隐藏
1.通过 state 变量来控制是否渲染元素 类似于 vue 的 v-if 方法是通过变量来控制是否加载元素的,如果变量为false,内容就直接不会渲染的. class Demo extends Re ...
- UIStackView上手教程
https://www.jianshu.com/p/19fbf3ee2840 https://www.cnblogs.com/bokeyuanlibin/p/5693575.html https:// ...
- Gym101612H Hidden Supervisors
题目链接:https://vjudge.net/problem/Gym-101612H 知识点: 贪心 解题思路: 我们称除了以 \(1\) 号结点为根的树以外的树为 “其他树”. 对于每一棵树,先自 ...
- jdk编译java文件时出现:编码GBK的不可映射字符
出现此问题的几种解决办法: 1.cmd下使用javac编译java文件 如: javac test.java 解决办法:编译时加上encoding选项 javac -encoding UTF-8 te ...
- 第二篇-用Flutter手撸一个抖音国内版,看看有多炫
前言 继上一篇使用Flutter开发的抖音国际版 后再次撸一个国内版抖音,大部分功能已完成,主要是Flutter开发APP速度很爽, 先看下图 项目主要结构介绍 这次主要的改动在api.dart 及 ...
- WordPress批量更换域名
UPDATE wp_options SET option_value = replace( option_value, 'http://www.old.com', 'http://www.new.co ...
- mysql中 Rank、DENSE_RANK()的区别
相同点:RANK()和DENSE_RANK()的是排名函数 不同点:RANK()是跳跃排序,即如果有两条记录重复,接下来是第三级别 如:1 2 2 4,会跳过3 DENSE_RANK()是连续排序,即 ...