昇腾社区modelzoo用例迁移至ModelArts指引

举报
星月菩提 发表于 2020/09/03 21:41:36 2020/09/03
【摘要】 基于modelzoo上VGG16用例,详细讲解如何将modelzoo中的用例迁移到modelarts上进行运行

什么是昇腾社区的ModelZoo?

对于开发者来说,部署应用到Atlas设备,有一点是最为关键、最具有挑战性的——模型的转换,需要将Caffe或TensorFlow框架下的模型转为专用的.om模型才可以。这一般是大家自己转换,一旦遇到转换失败,可能就需要较长时间的调整了,为了减轻大家开发负担,这里给大家介绍一下昇腾开发者社区的ModelZoo,这里有适配好的模型更有支持Ascend 910训练的主流算法大家可以直接下载模型使用,去部署自己的项目,如果大家对模型有更好的要求,或有定制化的需求,还可以自己训练,下载自己想用的算法就行了哦,非常方便。


为什么要迁移到ModelArts上?

昇腾社区的Modelzoo默认是在atlas800 9000的裸机上运行,当前ModelArts提供atlas800 9000的计算资源,如果没有atlas800 9000的裸机,可以使用ModelArts运行这些算法。


下面以ModelZoo的VGG16为例展示如何迁移代码到modelarts上运行

ModelZoo VGG16下载链接地址

https://www.huaweicloud.com/ascend/resources/modelzoo

image.png



首先看train.py这个入口脚本,modelarts使用OBS服务作为存储介质,因此,需要将OBS上的数据下载到本地。

这里设置了real_data_url = '/c a c h e/imagenet'

云上d910的节点都会挂载/c a c h e这个目录作为本次训练作业的临时存储空间,此目录对于单卡d910,大小为400GB的SSD,磁盘为nvme ssd,读取速度 > 600MB/s,对于8卡d910存储空间为3.5TB,磁盘为nvme ssd,读取速度 > 600MB


sync_data方法是对于8卡d910节点的数据下载,因为会启动8个进程,每个进程对应1块npu,所以只需要有一个进程进行数据的下载即可,这里面是通过获取环境变量DEVICE_ID来控制的,DEVICE_ID为0的进程进行数据的下载,下载成功以后,其他7个进程收到下载完成的信号,再一起往下走。

download_data方法是对于单卡d910资源进行数据下载的逻辑

main函数,通过rank size来确定当前是单卡还是多卡,如果是多卡rank_size > 1.此时走多卡逻辑

进入main函数首先调用的是parse_args,需要在parse_args代码中添加如下代码来完成适配。因为云上会传入这两个参数


下面是进行data_loader.py文件的适配

云上环境变量中没有DEVICE_INDEX,可以使用RANK_ID或者DEVICE_ID进行替换,这里使用RANK_ID进行替换。



保存训练结果到OBS可以通过如下方式进行保存,例如VGG中,chpt保存在了./result目录下面,这是一个相对路径,result目录会被放到/home/work/workspace/device0,/home/work/workspace/device1下面,

每个进程会在/home/work/workspace目录下面创建一个属于自己的目录,下面的代码让0号进程上传ckpt到OBS



修改完这两个文件就可以正常提交作业了。


VGG修改后的train.py代码已经添加到附件,可以进行查看


注意:如果modelzoo的文档里面说要使用imagenet数据集进行测试,那就代表要使用全量的imagenet数据集,不能只上传少量数据进行测试,那样会触发bug。



RTF 是RANK_TABLE_FILE的缩写

云上ModelArts在拉起进程之前会设置如下环境变量

  1. DEVICE_ID: 使用 RTF 中记录的 device_id 设置该值

  2. RANK_ID: 使用 RTF 中记录的 rank_id 设置该值

  3. RANK_SIZE: 根据 RTF 中 device 的数目设置该值,例如 4 * D910,该值即为 4

  4. HCCL_CONNECT_TIMEOUTHCCL 集合通信超时时间,默认配置为 1800 s


    附件下载

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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