项目指定MindSpore为推理框架,可惜该框架不支持在Windows系统中调用gpu,于是想通过Docker在Win10中调用MindSpore的Linux镜像,本文记录一下配置过程。
Docker的基础原理和安装可参考我之前的博文Docker学习笔记
Docker-desktop官网下载:https://www.docker.com/products/docker-desktop
MindSpore官网:https://www.mindspore.cn/install
在MindSpore官网拉取GPU版本的镜像,相关设置如下图所示:
输入以下命令启动容器:
- 表示该容器可以调用主机所有GPU
- 表示将该容器重命名为mind
- 表示将主机端口10023映射到容器端口23,方面后续通过ssh来进行通信
为了后续方便在Pycharm中启动容器,以及和容器进行通信,在Pycharm中安装和两个插件。
为了方便后续主机和容器进行文件的传输,在容器中配置ssh服务。
在容器中输入以下命令:
之后,为容器设置密码:
修改ssh配置文件:
主要对以下四行内容取消注释,并进行修改:
修改完之后输入保存退出。
重启ssh服务:
最后,在主机端进行ssh连接测试:
出现以下内容,表示顺利连接:
下面在Pycharm中,利用进行ssh配置,在右上角点开编辑文件:
设置完成之后,就可以直接在编辑器中,通过右键,一键将文件上传到路径中。
根据MindSpore官网的描述,可用以下代码进行环境验证:
将该文件上传到容器中进行运行,出现下列内容表示通过验证:
该插件上传比较方便,如需下载文件,可以用ssh连接软件去连接docker,也可采用命令行的方式,比如,需要将容器中的文件下载到路径下,可执行:
配置完环境后,发现C盘少了50多个G,仔细检查发现docker会把镜像和容器文件存放在这个路径下,因此需要将其迁移到其它盘。
这里迁移千万不能直接手动复制文件夹,如果出错则会导致容器镜像丢失,下面用管理员命令打开控制台:
- 关闭wsl
- 导出数据
对应存放路径修改为自己的,我这里临时建了一个temp文件用来存数据:
- 注销
- 导入数据
完成之后,C盘存储压力消除,其它一切正常。