深度学习框架MXNet的安装与使用
就笔者个人理解,深度学习的框架类似于C语言中的函数库,选择不同的学习框架对于训练的加速有着不同的影响。因此,对于初学者而言,选择一个训练速度快,流行程度广切语言简洁的框架尤为重要。
常见深度学习框架与训练用时对比
学习框架 | Github网页 | Github Star | 贡献者数 | AlexNet训练耗时 (per batch in sec.)[^1] |
---|---|---|---|---|
Tensorflow | https://github.com/tensorflow/tensorflow | 67396 | 997 | 0.042 |
MXNet | https://github.com/apache/incubator-mxnet | 10800 | 407 | 0.014 |
CNTK | https://github.com/Microsoft/CNTK | 12121 | 145 | 0.032 |
Caffe | https://github.com/BVLC/caffe | 19720 | 248 | 0.021 |
Torch | https://github.com/torch/torch7 | 7192 | 132 | 0.023 |
PyTorch | https://github.com/pytorch/pytorch | 6800 | 280 | - |
[^1]The GPU card for training is GTX 1080 @ 1607MHz with Pascal architecture. Data sources: https://arxiv.org/pdf/1608.07249.pdf
可以看出,目前Google开发的TensorFlow是最热门的深度学习框架,其优点是适合于大规模集群部署,也就是更利于大型网络的分布式服务器实现,缺点是训练速度较慢,使用与调试较为繁琐;MXNet的训练速度最快,且代码结构清晰。值得一提的是,MXNet的开发者大多为中国人。接下来,TensorFlow的环境配置较为简单,在Python3.0以上环境中使用pip install tendorflow命令行即可,下面介绍Windows系统中MXnet的环境配置
在Windows下配置MXNet框架
- 由于目前的深度学习框架基本都是在pthon生态下衍生出的,因此我们首先需要安装python语言,这里推荐使用python的一个强大的资源包管理器Anaconda:https://www.anaconda.com/distribution/。 目前的MXNet需要python2.7版本
安装完成后,需进行环境变量设置,进行 控制面板\系统和安全\系统\高级系统设置\环境变量\系统变量\PATH 中添加 anaconda的安装目录的Scripts文件夹, 比如我的路径是F:\anaconda\Scripts, 看个人安装路径不同需要自己调整。随后在命令行中输入conda --version进行验证,若出现版本号,如下图,则表明安装成功
-
如果有GPU,我们可以安装CUDA进行训练加速:https://developer.nvida.com/cuda-dowloads, 这里注意选择本地版(exe {local});
之后可以在python环境下使用pip install mxnet-cu100安装GPU版本的MXNet,注意这里的100对应10.0版本的CUDA,也可以用pip install mxnet安装CPU版本的mxnet。 -
如果有GPU,则还需要下载cuDNN,cuDNN是Nvidia开发的用于深度神经网络的GPU加速库,能更高效地调用CUDA进行计算,下载cuDNN: https://developer.nvidia.com/rdp/cudnn-archive, 这里需要注意根据CUDA型号选择正确的cuDNN安装包
- 下载MXNet的预编译包: https://github.com/yajiedesign/mxnet/releases,如图所示
先下载基础包(vc14 base package),然后下载更新包,如2019****_mxnet_x64_vc14_gpu_cu***.7z,随后将基础包与更新包解压到同一个目录
- 进行MXNet目录下,在命令行执行setupenv.cmd进行环境设置,随后,进入python子目录,在命令行执行
python setup.py install
- 运行python,然后在python中执行
import mxnet as mx
a=mx.nd.ones(1)
b=mx.nd.ones(1,mx.gpu())
a.asnumpy()
b.asnumpy()
如果此前安装成功,会看到这样的输出
至此,Windows10下安装MXNet的工作已经全部完成
基于MXNet框架的LeNet-5卷积神经网络简单测试
Github上关于神经网络的代码已经十分多了,我们选择一个:https://github.com/apache/incubator-mxnet, 下载完整代码(大小:17.78M)后解压进入example目录下的imageclassification目录,在命令行执行
python train_mnist.py --network lenet
如果成功运行,则可以看到网络的识别准确率随着训练迭代次数的增加而提高,如下图所示。
至此,我们已经完成了深度学习框架MXNet的安装与使用。