一、重要说明

自定义镜像是基于基础镜像制作的,其中根据基础镜像类型的不同,可提供“基础镜像为非ModelArts提供”、“基础镜像为ModelArts提供”两种方案,都可以指导用户在ModelArts上完成自定义镜像的制作。

二、准备工作

2.1 修改 docker 配置

/etc/docker/daemon.json 文件中添加如下部分

{"insecure-registries": ["swr.cn-central-231.xckpjs.com"]
}
# 重新加载daemon.json配置
systemctl daemon-reload# 重启docker服务
systemctl restart docker

2.2 修改 hosts 配置

/etc/hosts 文件中添加如下部分:

222.89.165.196  swr.cn-central-231.xckpjs.com

三、关键步骤(基础镜像为非ModelArts提供)

3.1 常用指令

# 重新加载daemon.json配置
systemctl daemon-reload# 重启docker服务
systemctl restart docker# 查看docker服务状态
systemctl status docker# 查看 daemon.json
cat /etc/docker/daemon.json

3.2 下载AscendHub镜像

AscendHub官网

3.2.1 筛选合适的镜像

以 pytorch-modelzoo 为例。

3.2.2 下载镜像

获取登录访问权限,并复制到节点执行

[root@localhost YOYOFile]# docker login -u xxx -p xxx ascendhub.huawei.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

下载镜像

[root@localhost YOYOFile]# docker pull ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1
22.0.RC1: Pulling from public-ascendhub/pytorch-modelzoo
e196da37f904: Pull complete
55883d7d51cb: Pull complete
c12f2cbfed42: Pull complete
9c8e7bc70917: Pull complete
cc89c9dc31bd: Pull complete
d4d05a44b5dd: Pull complete
c8946786517a: Pull complete
168e9b57e364: Pull complete
0306b568f1d6: Pull complete
24f37cf22a2c: Pull complete
d0c18ce516f9: Pull complete
2016b4899336: Pull complete
9168f2ae2f05: Pull complete
1bcd4049fce6: Pull complete
e8241e04253f: Pull complete
b0294ab5fb7a: Pull complete
Digest: sha256:6b4be6a3705d7b9ba4d7bdd36e20fa9734c40b6fefbba94d588a9d7c6e764e00
Status: Downloaded newer image for ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1
ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1

3.3 编写Dockefiile文件

参考:Dockerfile文件(基础镜像为非ModelArts提供)

  1. 基础镜像为非ModelArts提供时,Dockerfile文件中需要添加用户和用户组,ma-group的gid必须是100 ,ma-user用户uid必须是1000。
  2. 添加 FROM ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1。内容参考样例如下:
FROM ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1
USER root
RUN default_user=$(getent passwd 1000 | awk -F ':' '{print $1}') || echo "uid: 1000 does not exist" && \default_group=$(getent group 100 | awk -F ':' '{print $1}') || echo "gid: 100 does not exist" && \if [ ! -z ${default_user} ] && [ ${default_user} != "ma-user" ]; then \userdel -r ${default_user}; \fi && \if [ ! -z ${default_group} ] && [ ${default_group} != "ma-group" ]; then \groupdel -f ${default_group}; \fi && \groupadd -g 100 ma-group && useradd -d /home/ma-user -m -u 1000 -g 100 -s /bin/bash ma-user && \chmod -R 750 /home/ma-user

3.4 build镜像

docker build -t xxxx:v1 .
[root@localhost YOYOFile]# docker build -t pytorch-modelzoo:v1.1 .
Sending build context to Docker daemon   2.56kB
Step 1/3 : FROM ascendhub.huawei.com/public-ascendhub/pytorch-modelzoo:22.0.RC1---> fcc1832163ac
Step 2/3 : USER root---> Running in f03d59699644
Removing intermediate container f03d59699644---> 1acc2e976ce4
Step 3/3 : RUN default_user=$(getent passwd 1000 | awk -F ':' '{print $1}') || echo "uid: 1000 does not exist" &&     default_group=$(getent group 100 | awk -F ':' '{print $1}') || echo "gid: 100 does not exist" &&     if [ ! -z ${default_user} ] && [ ${default_user} != "ma-user" ]; then         userdel -r ${default_user};     fi &&     if [ ! -z ${default_group} ] && [ ${default_group} != "ma-group" ]; then         groupdel -f ${default_group};     fi &&     groupadd -g 100 ma-group && useradd -d /home/ma-user -m -u 1000 -g 100 -s /bin/bash ma-user &&     chmod -R 750 /home/ma-user---> Running in a8620216382f
userdel: group HwHiAiUser not removed because it has other members.
userdel: HwHiAiUser mail spool (/var/mail/HwHiAiUser) not found
Removing intermediate container a8620216382f---> 27df0bed4cc7
Successfully built 27df0bed4cc7
Successfully tagged pytorch-modelzoo:v1.1

3.5 登录swr镜像产库


3.6 客户端上传

点击客户端上传按钮,根据要求修改镜像的标签tag,push镜像到swr仓库。

3.7 注册镜像

鹏城需要,河南算力中心不需要此步骤。有两种方式来注册镜像。

3.7.1 方式一

使用 ma-cli register-image [OPTIONS] SWR_PATH 命令来注册镜像。

ma-cli register-image swr.cn-south-222.ai.pcl.cn/cloud-test/mindspore_1_6:v1 -a AARCH64 -rs ASCEND

参数解释:

  • -a 指定该镜像支持ARM架构;

  • -rs 指定镜像支持ASCEND芯片。

3.7.2 方式二

在console上注册镜像。

  1. 登录modelarts;

  2. 进入【镜像管理】,点击【注册镜像】;

    **镜像源 **即为刚才推送到SWR中的镜像,将完整的SWR地址拷贝到这里即可。

3.8 创建算法

使用自定义镜像创建算法

3.9 创建训练作业

四、关键步骤(基础镜像为ModelArts提供)

与“基础镜像为非ModelArts提供相比”,除了下载镜像、编写Dockfile文件的步骤不同之外,其他步骤保持一致。

4.1 下载镜像

镜像查询,请参考:训练基础镜像详情(Ascend-Powered-Engine)。

训练基础镜像支持的Region为:cn-north-4

docker pull swr.cn-north-4.myhuaweicloud.com/aip/pytorch_1_5_ascend:pytorch_1.5.0-cann_5.0.4-py_3.7-euler_2.8.3-aarch64-d910-roma-20220318164813-b3feb87

4.2 编写Dockfile文件

Dockerfile文件信息

五、FAQ

Q:登录指令失败

[root@localhost YOYOFile]# docker login -u cn-central-231@AM7WFUQ2EEMGFJF8T31A -p xxx swr.cn-central-231.xckpjs.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://swr.cn-central-231.xckpjs.com/v2/: dial tcp: lookup swr.cn-central-231.xckpjs.com on 8.8.8.8:53: no such host
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://swr.cn-central-231.xckpjs.com/v2/": dial tcp: lookup swr.cn-central-231.xckpjs.com: no such host

错误原因:
没有配置hosts解决办法:
参考上文【准备工作】
1. 修改 docker 配置
2. 修改 hosts 配置

华为ModelArts自定义镜像(PyTorch镜像)相关推荐

  1. ubuntu安装pytorch镜像修改及下载

    ubuntu安装pytorch镜像修改及下载 下载pytorch下载太慢,搞了很长时间,终于改好镜像能快速下载了,记录以下. 1.在/home/用户名/ 下找到/.condarc 文件,可能需要你右击 ...

  2. Docker自定义部署Redis镜像

    一. DOCKER介绍 Docker简介 (1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源. (2)Docker 可以让开发者打包他们的应用以及依赖包到 ...

  3. 利用 Docker 配置 Pytorch 镜像流程

    目录 假设你已经安装好了Ubuntu 1 安装 Docker 2 安装 Pytorch 镜像 假设你已经安装好了Ubuntu 1 安装 Docker 打开终端,先更新下apt sudo apt-get ...

  4. 使用 “Cubic” 制作自定义 “ubuntu” 系统镜像

    目录 一.前言 二.正文 ISO镜像定制 UUI镜像定制 定制系统测试 三.镜像下载 一.前言 使用ubuntu系统进行开发的时候,我们需要安装很多开发工具,比如sublime text.vscode ...

  5. 华为交换机:交换机端口镜像技术

    交换机端口镜像技术 参考资料:https://blog.csdn.net/qq_38265137/article/details/80404306 在某些场景中,我们可能需要监控交换机特定端口的入站或 ...

  6. torch各个版本镜像_Anaconda安装Pytorch镜像详细教程

    在win10基础上已经安装好了Anaconda,继续安装Pytorch.因为采用原本的下载方法实在太慢,还容易出现问题,现采取Pytorch清华镜像下载方法,亲测有效快速!!! 1.已经安装好Anac ...

  7. 华为公共云有uos系统服务器,华为云服务器上 公共镜像

    华为云服务器上 公共镜像 内容精选 换一换 由于公有云"敏捷弹性.安全可靠.简单易用.节省成本"等特点,越来越多的企业将自己的IT应用和负载迁移到公有云,如何方便快捷地将已有的服务 ...

  8. 制作最小linux镜像,Docker镜像的无中生有:使用scratch制作自定义最小镜像

    针对如何制作尽量小的镜像问题,笔者在这里介绍一种用"空镜像"制作自定义最小镜像的方案. 1. 从石头缝里蹦出来的基础镜像? 这里请大家思考一个问题:docker hub上的那些基础 ...

  9. docker:自定义ubuntu/制作镜像引用/ubuntu换源更新

    一.需求 1. 制作一个图像辨识的api,用到相同设置的ubuntu镜像,但是每次制作都要更新ubuntu和下载tesseract浪费半个到一个小时下载,所以制作一个自定义ubuntu几次镜像大大提高 ...

最新文章

  1. 《数学之美》第20章 不要把鸡蛋都放到一个篮子里--谈谈最大熵模型
  2. python中shutil模块的用法_python中的os,shutil模块的定义以及用法
  3. 目标检测常用数据集格式
  4. workerman mysql_workerman/mysql
  5. EJB3.0学习笔记---MDBbean--区分P2P模式和Pub/Sub模式的示例
  6. 计算机网络校园网建设设计摘要,计算机网络专业毕业论文校园网建设设计.doc...
  7. abb的knx的数据库下载方法_ABB智能家居KNX方案.doc
  8. 【K8S】Submariner实现跨集群通信
  9. 【业务安全05】业务逻辑漏洞之篡改交易数据——基于大米CMS-V5.4电子商城
  10. SAP中的贷项凭证、借项凭证
  11. 脉冲神经网络SNN的简介
  12. 91手机助手电脑版官方版
  13. 如何在PDF文档中添加手写签名?
  14. 阿里云服务器挖矿程序解决流程
  15. 求n的阶乘,求1~n的阶乘和(循环)
  16. 人在四合院:我变成了何雨柱(二)
  17. idea Translation翻译插件详细讲解
  18. 清华学生告诉你什么是清华!
  19. python jpype 调用java之坑
  20. 解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)

热门文章

  1. Android开发之自定义SurfaceView绘制动效音波图 | 动效音阶图 | Android自定义View
  2. 王慧文的AI大模型创业成功率几何?
  3. solidity的投票示例代码
  4. 银行项目外包专题系列之一:经常遇到的外包/驻场/实施/To B/POC这些概念
  5. 认真开始学习C语言的2天总结(师承上官可编程----老陈)
  6. 蓝色天空HTML网页模板
  7. oracle自连接和自然连接,一个θ连接,equijoin和自然连接之间的区别
  8. C语言编程练习:用pow()函数实现求x的y次方的值
  9. videoJs实现手机视频播放功能
  10. 【嵌入式】教你如何在Linux设备上截图