《MXNet深度学习实战》—2.2.5 通过Docker使用MXNet

举报
华章计算机 发表于 2019/06/16 16:50:37 2019/06/16
【摘要】 本节书摘来自华章计算机《MXNet深度学习实战》一书中的第2章,第2.2.5节,作者是魏凯峰。

2.2.5 通过Docker使用MXNet

介绍完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。

 image.png

图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代码前默认不加“>>>”符号。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。