【华为云-上云之路】手把手教你用ResNet50预置算法基于海量数据训练美食分类模型

举报
看那个码农 发表于 2020/06/06 15:51:48 2020/06/06
【摘要】 手把手教你用ResNet50预置算法基于海量数据训练美食分类模型

华为云华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器、云数据库、云安全等云计算服务,软件开发服务,面向企业的大数据和人工智能服务,以及场景化的解决方案。


image.png


华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。

image.png

华为云官方网站
ModelArts华为云产品中面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。image.png


华为云官方网站




基于海量数据使用ResNet50预置算法训练美食分类模型

本实验将介绍如何使用ModelArts的数据标注能力和使用预置算法ResNet50基于海量美食数据训练一个美食分类模型。并一键将训练得到的模型部署成在线服务,用户使用该在线服务对输入的图片进行预测以达到自动识别上传图片是哪种美食的目的。


image.png


基于海量数据使用ResNet50预置算法训练美食分类模型流程


1.准备实验环境与工具

2.准备数据

3.创建数据集

4.据标

5.一键模型上线

6.在线服务测试




1


1.1密钥准备


首先需要进入华为云官方网站

https://www.huaweicloud.cn/


image.png


点击页面的“控制台”切换至控制台界面,在账号名称的下拉菜单中点击“我的凭证”,进入创建管理访问密钥(AK/SK)的界面。位置如下图所示:



image.png


什么是访问密钥?访问密钥即AK/SK(Access Key ID/Secret Access Key),是您通过开发工具(API、CLI、SDK)访问华为云时的身份凭证,不能登录控制台。系统通过AK识别访问用户的身份,通过SK进行签名验证,通过加密签名验证可以确保请求的机密性、完整性和请求者身份的正确性。


选择访问密钥”,点击“新增访问密钥

image.png



妥善保存系统自动下载的“credentials.csv”文件中的AK(Access Key Id)SK(Secret Access Key)以备后续步骤使用。image.png



1.2创建OBS桶和目录


进入方式,“控制台”->“服务列表”->“存储”->“对象存储服务”,页面右上角点击“创建桶”按钮进入创建页面。

image.png


什么是OBS?对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。
1.3 OBS桶设置
OBS桶设置参数如下:区域:华北-北京四桶名称:自定义(注意:此名称会在后续步骤使用)根据自己的命名习惯,我将此处的桶名称取为food-modelart存储类别:标准存储桶策略:私有归档数据直读:关闭多AZ:开启 点击"立即创建",完成创建



image.png


1.4创建文件夹


点击刚刚创建的桶,进入详情页image.png



左侧栏选择“对象”,点击“新建文件夹”,在弹出的新建窗口中:
文件夹名称:自定义此名称会在后续步骤中使用)根据自己的命名,我将此处的文件夹名称取为food-data 点击“确定”完成添加



image.png
1.5服务授权
由于创建自动学习项目需要使用数据管理功能,在开始使用前,需为数据管理模块获取访问OBS权限。

在ModelArts管理控制台,进入“数据管理->数据集”页面,单击“服务授权


image.png


由具备授权的账号同意授权后,即可正常使用:

image.png



1.6下载安装并登录OBS Browser+


由于OBS Browser快下线了,所以本次实验关于对象存储服务操作中我们用到的新工具OBS Browser的升级版OBS Browser+


OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。


该工具在华为云主页“开发者->资源工具->开发工具”处


image.png


双击点进去后是下面的页面



image.png


在开发工具的业务工具处,根据自己电脑配置下载OBS Browser+:


image.png


此为下载完成打开后的OBS Browser+工具界面:


image.png



填入步骤1.1下载得到的Access Key IdSecret Access Key密钥

即可登录刚刚在华为云云端创建的OBS桶:


image.png



此时可以借助OBS Browser+从云端创建的OBS桶中上传和下载文件:


image.png




2


2.1准备数据


ModelArts在公共OBS桶中提供了美食分类的示例数据集,命名为“foods_recognition_23”

本文的操作实验将使用此数据集进行模型构建。


关于数据集的下载您可以在华为云网页:


https://github.com/huaweicloud/ModelArts-Lab/blob/master/train_inference/Foods_Recognition_Builtin_Algorithm/README.md


进行美食分类的数据集下载,数据集文件的大小不大,有74M,共1600多张图片。



image.png

或本微信公众号后台回复“食物”即可一键获取美食分类数据集:


image.png
2.2数据解压

在本地电脑平台,解压下载的

“foods_recognition_23.tar”压缩包。


例如,解压至本地“foods_recognition_23”文件夹下



image.png

2.3数据上传

点击打开刚刚下载安装好的OBS Browser+工具进行对象存储服务:

进入步骤1创建好的OBS桶food-data文件夹中:



image.png


点击上传”,选择刚才下载的本地美食分类数据集中的文件夹,点击“确定”即可完成上传。



image.png

image.png


利用OBS Browser+工具将数据上传至华为云云端的速度很快,在华为云云端很快就可以看见刚刚上传的本地电脑的美食数据集:


image.png



3


3.创建数据集

进入ModelArts管理控制台主页,单击左侧导航栏“数据管理”,再点击数据集

image.png



添加步骤1保存的访问密钥文件中的密钥:
image.png



在“数据集”栏中单击“创建数据集”image.png



在“创建数据集”页面中,填写“数据集名称dataset-food
选择“数据集输入位置”美食数据集OBS路径为“/food-modelart/food-data/train/”
“数据集输出位置”选择一个空目录如“/food-modelart/food-data/output/”
标注场景选择图像分类,其它不用填
image.png



点击创建即可创建数据集:


image.png





4


4.数据标注


点击刚刚创建好的数据集dataset-food,点击进去:


image.png



选择右上的“开始标注”

此页面可以可视化的看见数据集中图片数量,标注和未标注的图片数量,以及标签统计。


此外在此处右上方还可选择创建团队标注任务,可以多人实时进行线上标注,大大提高了标注工作效率。

image.png



数据标注,针对图像分类项目,即在已有数据集图像中,标注出不同类别物体,并为其打上标签。标注好的数据用于模型训练。


美食数据集中,已标注部分数据,还有部分数据未标注,用户可以选择未标注数据进行手动标注。

image.png



数据集创建时,会自动执行数据源同步操作。由于数据源同步需要一定时间,如果出现同步失败,可单击“同步数据源”手动执行。



image.png


单击“未标注”页面,此页面展示所有未标注的图片数据。由于美食数据集已经在右侧为我们创建好相关标签,此时我们可以直接根据图片物体的类别将图片进行标注。



image.png


以“灌汤包”数据标注为例子,本文我们将操作一遍“灌汤包”数据标注的过程:



image.png


1.在未标注图片中找到所有灌汤包的图片,并勾选图片左上的小勾√。

2.勾选完之后在右侧标签名处,找到灌汤包的标签名,即可实现一次标注。


image.png



我们用相同的办法将剩余的几十张图片标注完成:


image.png



返回数据集概况页面,选择右方的“发布
image.png



设置好数据集的名称和格式以及训练验证比例:

image.png



点击确定后,等几秒钟即可发布成功:

image.png




5


5.一键模型上线
返回数据集列表,选择刚才创建的dataset-food数据集右侧的“一键模型上线


image.png点击一键模型上线下方的“任务创建image.png



此时就可以进行图像分类模型的配置:

名称:自定义(这里我定义的是auto-food)预置算法:选择ResNet_v1_50将max_oepoches改为20,其他运行参数保持默认。
这些运行参数会控制模型的训练过程,有经验的用户可以调节这些运行参数。

经验不足的用户可以按照我的操作进行配置:

image.png



训练输出位置:选择OBS路径

/food-modelart/food-data/output/


作业日志路径:选择OBS路径

/food-modelart/food-data/log/


(output,log文件夹都是需要自己新建的文件夹)



image.png

资源池:公共资源池

类型:GPU

规格:CPU:8核64GiBGPU:1*nvidia-v100-pcie-32gb32GiB

计算节点:1



image.png

部署:公共资源池

计算节点规格:CPU:2 核 8 GiB。如果开通了GPU部署权限,可以尝试GPU部署。

计算节点个数:1。如果是多个计算节点,就是多实例部署,可以提高API的并发数。


image.png

填写好参数后,点击“下一步”按钮,确认参数无误:


image.png


然后点“提交”按钮

image.png


一键模型上线任务包含了三个子任务:


1.首先会在训练作业中创建一个训练作业,会训练得到一个模型

2.然后将训练所得模型导入到模型管理中

3.最后将模型在在线服务中部署为一个在线API服务



image.png

我所用的套餐一共使用了13分钟就将1630张图片的数据集训练成功了。


在“训练管理”处可以点击查看刚刚完成的训练作业:

image.png


点击作业名称可进入作业,查看作业详情:

image.png



日志”页面展示了训练过程日志,可以看到模型在训练过程中打印的日志,比如模型精度训练速度等,同时也可以下载日志文件到本地查看:

image.png




6


6.在线服务测试


在“部署上线”的“在线服务”处,点击运行中的在线服务右侧的“预测


在线服务的本质是RESTful API,可以通过HTTP请求访问,在本实验中,我们直接在网页**问在线服务。


image.png

进入到测试界面,单击“上传图片,进行检测:



image.png

箭头指的地方可看见检测结果,可以说利用ModelArts平台训练出来的美食分类模型检测效果是很棒的。

image.png


测试1
image.png


测试2
image.png


测试3
image.png


测试4


image.png

测试5


至此实验全部完成。


最后大家使用的云端资源记得全部删除如对象存储服务创建的OBS桶,文件夹;ModelArts创建的数据集,部署的模型等都需要删除,并停用访问密钥,以免造成不必要的花费。


通过对实验结果的比对,可以看出利用

[华为云ModelArts]训练出来的美食分类模型是很棒的,六个字总结就是-高效,快捷,省心


正因我们国家有许多像华为这样强大的民族企业在国家背后默默做支撑,做奉献。我们国家才能屹立于世界民族之林。

华为,中国骄傲!中华有为!

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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