使用Notebook创建自定义训练镜像
创建Notebook实例
访问链接:https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container
点击“创建”按钮
创建一个CPU规格即可进行镜像的安装和构建,创建GPU规格的镜像可以进行GPU代码测试。
建议构建过程用CPU规格,保存镜像后拉起一个GPU规格的进行验证。
创建配置如截图:
安装相应的软件和依赖包,完成相关测试
这里在conda的base环境安装一个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}
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
针对obsutil的AKSK设置,可以直接在启动命令里输入,然后再启动run.sh。或者直接在run.sh脚本里配置,或者在镜像里配置。
【专属池】专属池直接挂载SFS盘到“/home/ma-user/work”目录,可以使用Notebook的相同命令启动。
启动以后,查看日志观察训练任务是否正常执行即可。
- 点赞
- 收藏
- 关注作者
评论(0)