文档首页 > > AI工程师用户指南> 使用自定义镜像> 用于训练模型> 示例:使用自定义镜像创建训练作业

示例:使用自定义镜像创建训练作业

分享
更新时间: 2019/12/18 GMT+08:00

本示例所需的文件存储在Github目录中。本示例使用MNIST训练数据,数据集可从MNIST官网下载。示例中的分布式和单机的区别主要在于脚本和运行命令不一样,使用的镜像都为同一个。

  • “mnist_softmax.py”为单机脚本。
  • “mnist_replica_kill.py”为分布式脚本。

单机训练示例

  1. 下载基础镜像,安装 Tensorflow 深度学习库,然后把镜像push到SWR。也可以采用Dockerfile在SWR上构建。
  2. “mnist_softmax.py”和训练数据上传至OBS。现将脚本和数据都放在代码目录下,以便直接下载到容器中。
    图1 上传训练脚本和数据
  3. 创建自定义镜像训练作业,数据存储位置和训练输出位置请根据实际情况填写。
    • “镜像地址”:填写刚上传镜像的“SWR_URL”
    • “运行命令”

      bash /home/work/run_train.sh python /home/work/user-job-dir/new/mnist/mnist_softmax.py --data_url /home/work/user-job-dir/new/mnist_data

      其中,“/home/work/user-job-dir/new/mnist/mnist_softmax.py”为下载下来训练脚本的位置,“--data_url /home/work/user-job-dir/new/mnist_data”为数据的位置。由于已经把数据放在代码目录中,容器已经下载了代码目录,所以直接使用本地的。

  4. 自定义镜像审核成功后,后台会直接执行自定义镜像训练作业。程序执行成功后,日志信息如下所示。
    图2 运行日志信息

分布式训练示例

  1. 分布式例子和单机的例子不同的点在于需要修改“python”文件。对“DLS_TASK_INDEX”“DLS_TASK_NUMBER”进行处理,来适配脚本所需参数,决定当前容器的功能。当前脚本的功能是将前两个容器作为“ps”,后两个容器作为“worker”
    图3 脚本修改

    其中,运行命令为:

    bash /home/work/run_train.sh python /home/work/user-job-dir/new/mnist/mnist_replica_kill.py --data_url /home/work/user-job-dir/new/mnist_data

  2. 计算节点个数选择多个(即至少大于1),其他设置与单机一样。执行结果如下所示。
    图4 运行结果日志
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区