到这一步,您已经准备好硬件环境资源和自定义 caffe 镜像。现在可以在容器服务深度学习解决方案中创建模型训练任务,快速使用 CPU/GPU 开始训练 caffe 模型。

您可以参考支持 Tensorflow的文档,先熟悉如何创建一个内置框架支持的模型训练任务,参见 单机模型训练

上传执行脚本

本示例中用到的训练命令是执行脚本 /input/train-mnist.sh。示例脚本内容也很简单,会运行 caffe 自带的 mnist 训练例子。

#!/bin/bash
set -e
cd /opt/caffe/
./data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
sh examples/mnist/train_lenet.sh

该脚本需要提前存放在前面创建的 OSS 存储 bucket caffe-bucket 的根目录下。



完成该操作后,在使用您构建的 caffe 镜像启动容器时,会自动挂载 caffe-volume 数据卷到容器内的 /input 目录下。这样就可以在容器内像执行本地脚本一样运行 train-mnist.sh 了。

说明 如果创建模型训练的应用日志的错误信息显示 /input/train-mnist.sh: not found。则可能是因为文件格式导致编码问题,您需要将该脚本文件转换成 linux 格式,再重新上传。

创建模型训练任务

  1. 登录 容器服务控制台
  2. 在 Swarm 菜单下,在左侧导航栏中,单击 解决方案
  3. 选择 模型训练 面板。单击 创建


  4. 弹出模型训练任务对话框。进行相关参数配置。开始创建训练任务。


    • 集群:选择准备好的 GPU 容器集群,本例中是前面创建的 swarmcluster 。
    • 应用名:本例中是 test-caffe,训练任务将作为一个容器应用被部署在容器集群中运行。
    • 训练框架:选择自定义镜像。
    • 镜像地址:填入上述推送的caffe镜像地址,本例中是 registry.cn-hangzhou.aliyuncs.com/dl-framework/acs-caffe:gpu 。
    • 分布式训练:勾选后可指定 Parameter Server 架构的分布式训练任务配置。本例不进行分布式训练。
    • 单 worker 使用 GPU 数量:单机训练时,任务所使用的GPU卡数量。
    • 数据来源:存储训练数据集的数据卷,可支持 OSS、NAS和本地数据卷。本例中选择前面创建的数据卷 caffe-volume。
    • 执行命令:启动模型训练任务的命令。本例中是向 caffe-bucket 根目录中上传的执行脚本,输入/input/train-mnist.sh
    • 训练监控:目前只支持基于Tensorboard的训练监控可视化服务,本例中不使用。如果勾选,会自动部署 Tensorboard服务,并与下面指定的日志存储路径自动关联。这样,训练代码中输出的日志可以被 Tensorboard 读取。
    • 训练日志路径:用于存储训练过程中输出的日志和结果。请在训练代码中使用同样的路径。

单击 确定 后,训练任务将被作为容器应用创建,自动调度到合适的GPU节点,并开始执行训练命令。