使用Notebook创建自定义训练镜像

举报
yangzilong 发表于 2021/07/21 11:44:25 2021/07/21
【摘要】 部分用户可能不熟悉docker的构建命令,那么可以通过Notebook来创建一个自定义镜像。 本文主要介绍如何使用Notebook来创建镜像,并使用对应的镜像跑通自定义镜像的训练任务。

创建Notebook实例

访问链接:https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container

点击“创建”按钮

创建一个CPU规格即可进行镜像的安装和构建,创建GPU规格的镜像可以进行GPU代码测试。

建议构建过程用CPU规格,保存镜像后拉起一个GPU规格的进行验证。

创建配置如截图:

安装相应的软件和依赖包,完成相关测试

这里在condabase环境安装一个pytorch1.6版本。安装命令如:


conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch

安装过慢时,可以考虑配置清华的conda源,参考:https://www.jianshu.com/p/7e663bb0d904

安装obsutil工具,具体参考:https://bbs.huaweicloud.com/blogs/281373

【专属池】obsutil工具是公共池用户的必备工具。专属池可以搭配SFS服务使用,体验更顺滑

再增加一个启动脚本/home/ma-user/run.sh,用来做数据下载和训练的启动,我们就按照pytorch样例代码启动一个图像分类训练。数据用ImageNet的数据,按样例代码的要求准备好即可。

包装好输入输出的run.sh脚本(使用样例数据,解压后再放到自己的OBS目录即可)内容如下:

#!/bin/bash 

# 环境变量配置(训练任务启动时必须有,否则网络会有问题,python也会使用错误的版本)
export http_proxy=""
export PROXY_COMMON=""
export FTP_PROXY=""
export ftp_proxy=""
export HTTPS_PROXY=""
export https_proxy=""
export HTTP_PROXY=""
export PATH=/home/ma-user/anaconda3/bin:/home/ma-user/anaconda3/condabin:$PATH

# 下载训练数据&代码
/opt/utils/obsutil cp -r -f -j 128 obs://xxxxxx/dog_cat_1w/ /cache

# 启动训练
cd /cache/dog_cat_sample/
python main.py -a resnet50 --epochs 2 dog_cat_1w/ 

# 上传训练结果
TRAIN_URL=`echo ${DLS_TRAIN_URL} | sed s/s3/obs/`
/opt/utils/obsutil cp /cache/dog_cat_sample/model_best.pth.tar ${TRAIN_URL}
【专属池】专属池搭配SFS服务使用时,可以直接读写"/home/ma-user/work"目录的内容,在训练任务时挂载到相同的目录即可。

GPU规格,可以直接“bash -x /home/ma-user/run.sh”启动相关测试。注意,第二次测试的是否要清空对应的文件夹。

如果测试中遇到问题,可以通过日志及其他命令行工具进行分析。需要的修改可以即时修改并重试。

使用镜像保存功能构建镜像

按照如下流程保存当前的Notebook环境。

 

开始保存后,对应的notebook实例可能3-10分钟不可用,需要耐心等待。

保存完成后,就可以在SWR的对应组织中查看到相应的镜像,也可以在训练里查到对应的镜像。

注意:

/cache/home/ma-user/work两个目录的内容需要额外关注。/cache目录在训练会重新挂载,导致内容被覆盖;/home/ma-user/work目录的内容是notebook中挂载的,不会保存在容器镜像中。建议/cache目录不要存放任何数据,/home/user/work目录存放临时的数据和代码。

在训练环境中测试镜像

使用自定义镜像方式启动即可,详细配置如截图:

其中,启动命令如下:

/opt/utils/obsutil config -i=${AK} -k=${SK} -e=obs.cn-north-4.myhuaweicloud.com && bash -x /home/ma-user/run.sh

针对obsutilAKSK设置,可以直接在启动命令里输入,然后再启动run.sh。或者直接在run.sh脚本里配置,或者在镜像里配置。

【专属池】专属池直接挂载SFS盘到“/home/ma-user/work”目录,可以使用Notebook的相同命令启动。

启动以后,查看日志观察训练任务是否正常执行即可。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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