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

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

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

(通过 Docker 使用 MXNet)

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

介绍完 Docker 和 nvidia-docker 的安装之后,接下来就可以从镜像库中拉取一个 MXNet 镜像,然后在该镜像中使用 MXNet。Docker 官方仓库中提供了多种多样的 MXNet 镜像,地址是: https://hub.docker.com/r/mxnet/ 。该地址中具有多种 API 对应的 MXNet 镜像,这里我们选择 Python API 对应的 mxnet/python。在 Docker 中,可以通过 docker pull 命令来拉取镜像,因为镜像名的命名规则一般是“仓库名: 标签”,比如“mxnet/python:gpu”,

由于本书采用的是 MXNet 1.3.1、CUDA 8.0 和 Python3.x,因此可以通过如下命令拉取镜像名为 mxnet/python:1.3.1_gpu_cu80 的镜像:

复制代码
$ docker pull mxnet/python:1.3.1_gpu_cu80_py3

镜像标签可以在链接 https://hub.docker.com/r/mxnet/ 中找到,如图 2-8 所示。习惯上是使用标签来表明该镜像内安装的主要内容和版本,比如标签 1.3.1_gpu_cu80_py3 表示安装了 MXNet 1.3.1、CUDA 8.0 和 Python3.x,因此借助 Docker 和其丰富的镜像库,实际上你并不需要安装 MXNet 和 CUDA。

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

图 2-8 MXNet 镜像名列表

接下来就通过 Docker 的 run 命令进入指定镜像从而启动一个容器并开始一些简单的操作吧进入指定镜像代码如下:

复制代码
$ docker run --rm -it mxnet/python:1.3.1_gpu_cu80_py3 bash

其中,“–rm”参数表示退出容器后自动删除该容器,“-it”参数则用来表示指定镜像名称,如果成功启动了容器,则命令行的前缀如下所示:

复制代码
root@ab8b0de5e6ae:/#

符号 @后面的字符串表示启动的容器的 ID。接下来你的所有操作都是在这个容器环境中,不会影响到机器环境。然后可以通过 Python3 命令进入 Python 环境(在该镜像中默认使用的 Python 版本是 3.5.2),若导入 MXNet 没有报错,则说明可以正常使用 MXNet 了:

复制代码
root@ab8b0de5e6ae:/# python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mxnet as mx
>>>

接下来可以执行一些简单的操作,代码如下:

复制代码
root@ab8b0de5e6ae:/# python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mxnet as mx
>>> a = mx.nd.array([1,2,3]).as_in_context(mx.gpu(0))
>>> b = mx.nd.array([4,5,6]).as_in_context(mx.gpu(0))
>>> print(a+b)

输出结果如下:

复制代码
[5. 7. 9.]
<NDArray 3 @gpu(0)>

注意 本书后续的 Python 代码前默认不加“>>>”符号。

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

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

评论

发布