第2章 搭建开发环境

MXNet官方提供了多种安装方式,安装过程非常简单,详细内容请参考官方安装链接:https://mxnet.incubator.apache.org/install/index.html,本章中关于MXNet的安装主要参考这个官方链接。该链接中提供了多种安装MXNet的方式,如图2-1所示,这里一共显示了5行安装内容,每行又包含多个选项。第一行表示MXNet的版本,点击下拉选项可以选择不同版本的MXNet;第二行表示操作系统,比如最常用的Linux、MacOS和Windows等;第三行表示API,最常用的是Python语言的接口;第四行表示训练环境,简单来讲就是,是否需要GPU;第五行表示不同的安装方式,比如通过pip工具进行安装、通过Docker进行安装等。

图2-1 MXNet安装方式

当你选择好了图2-1中的这些选项,安装界面就会按照你的选项给出详细的安装步骤供你参考。本章将以其中最常用的两种安装方式为例介绍如何安装MXNet,一种是采用Docker安装,另一种是采用pip在本地安装。

Docker是一个环境隔离工具,目前在工业界应用非常广泛,采用这种方式其实并不需要你安装MXNet,而只需先安装Docker,然后通过Docker这个工具从镜像(image)库中拉取MXNet镜像就可以直接使用MXNet了。为什么Docker会得到广泛应用呢?主要原因在于一方面你可以在一个镜像环境中运行你的代码,这个环境与你的电脑环境是隔离的,这样你在镜像中的安装和配置操作都不会影响到你的电脑环境,同时还能保证在你电脑上能够正常运行的代码移植到他人电脑上一样能正常运行,因为只要提供相同的镜像就能保证代码的运行环境相同。另一方面是方便,你想要什么样的镜像都可以从网上拉取,比如你想用CUDA 9.0、MXNet 1.3.1或者CUDA 8.0、MXNet 1.3.1等,那么直接从镜像库中拉取对应版本的镜像即可,这样你就不需要每次都在本地安装,可谓是一劳永逸。目前Docker的发展比较成熟,官方镜像库中提供了非常丰富的选择,大部分镜像中还安装好了CUDA、cuDNN、OpenCV等常用工具或库,因此基本上是拉取后就能直接使用,非常方便。当然,对于新手而言,学习Docker的安装和使用还需要一些时间,因此假如你想要快速上手深度学习框架,那么可以考虑第二种安装方式,也就是通过pip命令进行安装。

本地pip安装就是平时我们最熟悉的直接在电脑上安装MXNet,只要配置好相关的环境,比如显卡驱动、CUDA、cuDNN和其他所需的工具,安装MXNet就只是一行命令的事了。这种安装方式比较直接易懂,但是容易出现的问题是后续的环境依赖不好维护,虽然安装MXNet不需要配置太多的环境依赖,但是随着相关库或者软件的不断使用和升级,环境依赖会变得越来越复杂,后期很容易出现这样的问题:在你的电脑上能正常运行的代码移植到他人的电脑上无法正常运行,或者要经过比较复杂费时的环境配置后才能正常运行。

因此如果你有一定的开发能力及经验,项目中需要进行环境隔离,尤其是有代码移植的需要时,那么推荐你安装Docker,然后在Docker镜像中运行你的MXNet项目。如果你刚刚入门,暂时不需要做环境隔离,并且相信后期不会因为环境依赖问题而搞得焦头烂额,那么采用本地pip安装会更加直观。