MXNet 深度学习实战 (24):搭建开发环境 2.2.4

阅读数:17 2019 年 12 月 28 日 22:58

MXNet深度学习实战(24):搭建开发环境 2.2.4

(安装 nvidia-docker)

内容简介
本书分为四大部分:
第一部分为准备篇(第 1~2 章),简单介绍深度学习相关的基础背景知识、深度学习框架 MXNet 的发展过程和优缺点,同时介绍基础开发环境的构建和 docker 的使用,帮助读者构建必要的基础知识背景。
第二部分为基础篇(第 3~7 章),介绍 MXNet 的几个主要模块,介绍 MXNet 的数据读取、数据增强操作,同时介绍了常用网络层的含义及使用方法、常见网络结构的设计思想,以及介绍模型训练相关的参数配置。
第三部分为实战篇(第 8~10 章),以图像分类、目标检测和图像分割这三个常用领域为例介绍如何通过 MXNet 实现算法训练和模型测试,同时还将结合 MXNet 的接口详细介绍算法细节内容。
第四部分为扩展篇(第 11~12 章),主要介绍 Gluon 和 GluonCV。Gluon 接口是 MXNet 推出的用于动态构建网络结构的重要接口,GluonCV 则是一个专门为计算机视觉任务服务的深度学习库。

安装好 Docker 后,你就可以开始使用镜像了。前面我们提到过如果要在 MXNet 中使用 GPU,不仅要安装显卡驱动、CUDA 和 cuDNN,还需要安装支持 GPU 的 MXNet 版本,虽然在镜像中可以安装 CUDA、cuDNN 和 MXNet,但是镜像中是没有显卡驱动的,因此如果你要在镜像中使用 GPU,那么你还需要将本机的显卡驱动映射到 Docker 镜像中,这就需要安装 nvidia-docker 了,nvidia-docker 的任务就是将显卡驱动映射到 Docker 镜像中。目前 nvidia-docker 版本主要是 nvidia-docker1 和 nvidia-docker2,本书采用的是 nvidia-docker2。接下来我们看看如何安装 nvidia-docker2,主要参考官方链接1进行安装。

1 https://github.com/NVIDIA/nvidia-docker

首先如果你的机器上已经安装了 nvidia-docker1,那么可以通过以下两条命令卸载和移除相关内容:

复制代码
$ docker volume ls -q -f driver=nvidia-docker | \
xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
$ sudo apt-get purge -y nvidia-docker

接下来添加 GPG key 并建立一个仓库,注意接下来的操作最好以 root 用户进行,否则可能会出现一些问题。以 root 用户进行安装时,命令最前面的 sudo 可以删去,代码如下:

复制代码
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L \
https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update

接下来就可以安装 nvidia-docker2 了,安装完成后需重新导入 Docker 配置文件,代码如下:

复制代码
$ sudo apt-get install -y nvidia-docker2
$ sudo pkill -SIGHUP dockerd

安装好 nvidia-docker2 之后,就可以测试下该命令是否有效。这里我们启动一个名为 nvidia/cuda 的镜像(假如你的机器上没有该镜像,那么 run 命令在启动之前会自动拉取该镜像),然后在镜像中运行 nvidia-smi 命令。在前面我们介绍过,nvidia-smi 命令是用来查看显卡信息的,因此如果你成功将显卡驱动映射到镜像中,那么就会得到如显卡信息:

复制代码
$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

如果你成功看到如图 2-5 所示的显卡信息,那么你现在已经可以在镜像中成功使用 GPU 了。

MXNet深度学习实战(24):搭建开发环境 2.2.4

图 2-5 显卡信息

但是到这里还没有结束,如果你仔细看看上一条命令,会发现多了一个参数:–runtime=nvidia,如果你去掉这个参数再运行就会发现报错。若每次运行 Docker 镜像都加上这个参数还是有些麻烦的,解决方法是我们可以在配置文件中配置该参数,这个配置文件就是 /etc/docker/daemon.json。可以通过如下命令打开该文件:

复制代码
$ vim /etc/docker/daemon.json

可以看到里面的内容如图 2-6 所示。

MXNet深度学习实战(24):搭建开发环境 2.2.4

图 2-6 原配置文件内容

这时,需要你添加一行使其变成如图 2-7 所示的内容。

MXNet深度学习实战(24):搭建开发环境 2.2.4

图 2-7 修改后的配置文件内容

保存该文件的修改内容之后,接下来需要重启下 Docker 服务:

复制代码
$ sudo service docker restart

最后,你可以使用以下命令在镜像中看到显卡驱动信息了:

复制代码
$ docker run --rm nvidia/cuda nvidia-smi

MXNet深度学习实战(24):搭建开发环境 2.2.4

购书地址 https://item.jd.com/12620056.html?dist=jd

评论

发布