基于ModelArts基础镜像构建自定义镜像创建作业代码数据集下载和模型上传问题

举报
ing journey 发表于 2021/07/12 10:55:53 2021/07/12
【摘要】 基于ModelArts基础镜像构建自定义镜像创建作业,用户在脚本代码中自行添加数据集下载和输出模型上传,本文展示相关代码示例。

基于ModelArts基础镜像构建自定义镜像创建作业,ModelArts平台会自动将启动脚本所在目录下文件全部下载至容器中的固定目录/home/work/user-job,但是不会自动将模型上传到页面所选择的OBS路径,用户需要在脚本代码中自行添加输出模型上传的代码。另外如果客户的数据集过大,也不建议将数据集放在启动脚本同一目录,因为将大数据集下载到固定目录后会导致磁盘占满的情况发生,针对以上问题给出解决方法和示例。

1、OBS目录与容器目录对应问题,以下举例说明,mnist为创建'算法来源'为自定义镜像的代码目录,训练作业在运行时,mnist目录下的文件会被整体下载到容器的/home/work/user-job-dir/mnist目录下。如果代码中有需要使用该路径下的文件,需要以'/home/work/user-job-dir/mnist'为路径前缀来进行指定。

例如此例中在数据集较小的情况下,将数据集dataset-mnist上传至OBS的mnist目录下,平台会自动将该文件下载到容器的目录里,加载数据集时,使用''/home/work/user-job-dir/mnist/dataset-mnist/"读取即可,示例代码如下:

2、当数据集较大时,不建议将数据集如问题1所述代码所在统一目录,会超出代码所在目录文件大小限制,限制如下:

解决方法如下:

a) 将数据集上传至其他目录下,例如与代码目录并列如下图所示:

b) 在启动命令处增加入参'data_url',如下图所示:

bash /home/work/run_train.sh python /home/work/user-job-dir/mnist/mnist_softmax.py --data_url='obs://modelarts-sa/baoyujie/Custmize-Image-Demo/dataset-mnist/'

c) 在训练代码里面接收data_url参数,并将数据集文件拷贝至容器的/cache目录下,代码如下所示:

备注:用户也可以选择在代码中直接硬编码OBS路径,这样用户就无需在启动脚本里面用data_url来传参,如下所示:

moxing包是平台基础镜像会自带,直接引用即可。

3、训练输出的模型,需要用户自行上传至OBS,具体步骤如下:

a) 创建作业时,会选择训练模型输出路径,假如选择的模型输出路径如下:

b) 启动命令中增加传入train_url参数,如下所示:

bash /home/work/run_train.sh python /home/work/user-job-dir/mnist/mnist_softmax.py --data_url='obs://modelarts-sa/baoyujie/Custmize-Image-Demo/dataset-mnist/'  --train_url='obs://modelarts-sa/baoyujie/Custmize-Image-Demo/mnist/output'

c) 训练代码里面增加输出模型上传逻辑,如下所示:

备注:用户也可以选择在代码中直接硬编码OBS路径,这样用户就无需在启动脚本里面用train_url来传参,如下所示:

日志上传逻辑不需用户自己编写,会自动上传。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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