华为云AI开发平台ModelArts示例:使用自定义镜像创建训练作业_云淘科技

本章节仅适用于指导在旧版训练模块中使用自定义镜像功能(旧版训练模块仅对部分存量用户可见,新用户不可见)。新版训练模块中使用自定义镜像功能请见训练管理中使用自定义镜像介绍。

本示例所需的文件存储在Github仓库中。本示例使用MNIST数据集,从MNIST官网下载。

“mnist_softmax.py”为单机脚本。

制作并上传自定义镜像

本示例使用Dockerfile文件定制自定义镜像。

以linux x86_x64架构的主机为例,您可以购买相同规格的ECS或者应用本地已有的主机进行自定义镜像的制作。

安装Docker,可参考Docker官方文档。

以linux x86_64架构的操作系统为例,获取Docker安装包。使用以下指令安装Docker:

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

如果docker images命令可以执行成功,表示Docker已安装,该步骤可跳过。

获取自定义镜像的基础镜像。

训练作业的自定义镜像需要以基础镜像为基础。基础镜像名称格式参见基础镜像包概述。使用以下指令获取自定义镜像的基础镜像:

docker pull swr..myhuaweicloud.com//

另外,您还可以使用docker images命令可查看本地的镜像列表。

编写构建自定义镜像的Dockerfile文件。

本示例构建tensorflow 1.13.2版本镜像。文件命名为“tf-1.13.2.dockerfile”。执行vi tf-1.13.2.dockerfile命令,进入文件中。

Dockerfile文件编写的更多指导内容参见官方指导说明。

FROM swr.cn-north-4.myhuaweicloud.com/modelarts-job-dev-image/custom-base-cuda10.0-cp36-ubuntu18.04-x86:1.1
# 配置华为云的源,安装tensorflow
RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak && \
sed -i "s@http://.*archive.ubuntu.com@http://repo.myhuaweicloud.com@g"  /etc/apt/sources.list && \
sed -i "s@http://.*security.ubuntu.com@http://repo.myhuaweicloud.com@g"  /etc/apt/sources.list && \
pip install  --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple  tensorflow==1.13.2
# 配置环境变量
ENV PATH=/root/miniconda3/bin/:$PATH

构建自定义镜像。

下列例子中镜像所在的区域为cn-north-4,镜像所属组织为deep-learning-diy,在“tf-1.13.2.dockerfile”文件所在的目录执行:

推送镜像至SWR,上传镜像的详细操作可参考SWR用户指南。

前提条件是已经创建组织并获取SWR登录指令。下列例子中镜像所在的区域为cn-north-4,镜像所属组织为deep-learning-diy,执行以下命令推送镜像至SWR。

“swr.cn-north-4.myhuaweicloud.com/deep-learning-diy/tf-1.13.2:latest”即为此自定义镜像的“SWR_URL”。

单机训练

将训练代码“mnist_softmax.py”和训练数据上传至OBS。将代码和数据都放在同一代码根目录下,以便直接下载到容器中。

以根目录“obs://deep-learning/new/mnist/”为例:

训练代码文件为“obs://deep-learning/new/mnist/mnist_softmax.py”;

数据存储路径为“obs://deep-learning/new/mnist/mnist_data”。

创建自定义镜像训练作业,“镜像地址”、“代码目录”和“运行命令”参考如下信息填写,“数据存储位置”和“训练输出位置”请根据实际情况填写。

“镜像地址”:填写已上传镜像的“SWR_URL”。
“代码目录”:训练代码存储的OBS路径,即为步骤1中的代码根目录。

在训练作业实际启动之前,ModelArts自动将“代码目录”下的所有内容递归下载到容器本地路径。下载后的容器本地路径为“/home/work/user-job-dir/${代码根目录的最后一级名称}/”。例如“代码目录”选择“obs://deep-learning/new/mnist”时,下载后的本地路径为“/home/work/user-job-dir/mnist/”,代码启动文件为“/home/work/user-job-dir/mnist/mnist_softmax.py”。

“运行命令”:bash /home/work/run_train.sh python /home/work/user-job-dir/mnist/mnist_softmax.py –data_url /home/work/user-job-dir/mnist/mnist_data

其中,“/home/work/user-job-dir/mnist/mnist_softmax.py”为代码启动文件,“–data_url /home/work/user-job-dir/mnist/mnist_data”为数据存储路径。

训练作业创建完成后,后台完成代码目录下载、自定义镜像审核以及自定义镜像的训练作业。训练作业一般需要运行一段时间,根据您选择的数据量和资源不同,训练时间将耗时几分钟到几十分钟不等。程序执行成功后,日志信息如下所示。

图1 运行日志信息

父主题: 用于训练模型(旧版即将下线)

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家