MXNET Windows+Anaconda下安装教程及Bug解决

来源:互联网 发布:淘宝店公告栏在哪里写 编辑:程序博客网 时间:2024/04/28 01:09

MXNET Windows +Anaconda下安装教程及Bug解决

前言

MXNET 作为2015年底开始流行的Deep Learning 开源框架, 由于其灵活性、对多种语言的支持、 轻量级的调度引擎已经成为很多DL 研发、学习者的开发框架。 网上也出现了很多的mxnet安装教程,但随着mxnet的更新迭代,较早的安装教程会出现一些问题。 笔者在安装过程中出现过很多头疼的Bug, 故针对mxnet 0.9.2(2017年2月更新的mxnet)在windows下的安装写一篇教程, 并汇总一些安装过程中遇到的bug,不定期更新。

1. 安装环境

1 安装Cuda
在NVidia官网下载
一定要检查你的显卡是否能用cuda, 如果不能,是用不了mxnet的 GPU版的,请安装CPU版

2 安装Cudnn
Cudnn一定要下载跟cuda对应的版本, 现在cuda 8.0对应的是cudnn 5。注意,有的较早教程提供的是7.5的Cuda,如果安错了对应的Cudnn以后会出现无法使用Cudnn的Bug
下载地址可以去 Cudnn, 要注册英伟达账号
下载后得到Cudnn文件夹(名字也叫cuda), 分别将里面的cuda/include、cuda/lib、cuda/bin三个目录中的内容拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0对应的include、lib、bin目录下即可
注意是32 or 64位系统

3 Open CV
OpenCV安装地址为 opencv, opencv 3.0下载下来就好

4 OpenBlas
下载地址为OpenBlas,也是下载下来就好

5 安装Anaconda
这里取决于你用的Python编译器,笔者研发需要安装了Anaconda 作为IDE。
注意你的python 版本,用Anaconda的话应为2.7版, mxnet暂时是不支持python3的
下载地址Anaconda , 下2.7

6 C++
VS2013及以上都行, 没有C++11新特性的VS要下载 Visual C++ Compiler Nov 2013 CTP并安装,然后把 C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2013 CTP\ 文件夹内所有拷贝至你的VS2013目录,如:拷贝至 D:\Microsoft Visual Studio 12.0\VC\ 目录下覆盖。

7 记得查看上述的安装(一般为1到5步)有没有添加到系统的path环境变量中, 且查看版本之间, 如python, anaconda, opencv, cuda之间有没有冲突

2. 下载MXNET

在完成了 “安装环境过程后”, 在GitHub 上下载 mxnet, 可以直接down下来,也可以用git fork然后克隆下来。(使用Git请自己百度/Google),下载地址mxnet

下载下来后打开 mxnet\make\config.mk,查找并修改为以下参数:
USE_CUDNN = 1
USE_BLAS = openblas

用Cmake和C++编译MXNET源码

其实如果能自己搞到libmxnet.dll是不用cmake 和C++编译的, 但是自己编译通过的libmxnet.dll一般没啥问题,而从别人那copy的就可能发生很多无法描述的bug了,所以笔者还是建议大家尽量自己编译。

这里写图片描述

这里最上面2行填你自己的mxnet安装路径
然后点configure, 选你的c++版本, 然后点generator

mxnet_build目录下会生成mxnet.sln,用vs打开, 切换成release模式, dubug模式也是可以编译的,编译出来也可以用,就是编译时间很长长长长……..

编译完成后,在mxnet_build\Release目录下生成了libmxnet.dll文件

安装Python的MXNET库

将libmxnet.dll文件copy到 …\mxnet\python\mxnet 路径下 打开cmd,切换到当前目录 这里写图片描述

输入python setup.py install 安装
把 …\Anaconda2\Lib\site-packages\mxnet-0.9.2-py2.7.egg\mxnet 添加到环境变量,中间的.egg是mxnet的版本号

测试MXNET安装是否成功

打开anaconda或者python, 运行官网上的代码
这里写图片描述
能跑通证明mxnet安装成功,且能使用GUP。

Bug汇总


1 执行 python setup.py install 后安装失败?

Solution: 如果一直到编译完libmxnet.dll都没有出现问题, 而却无法 setup.py, 请检查python的版本。 如果已经安了python3, 请把python3路径下的python.exe改个名字, 如果用anaconda也同样。 最后请检查python或anaconda的环境变量, mxnet是无法用python3 or anaconda3 的。 在执行时用 管理员权限运行。

2 在跑 Import mxnet as mx , a = mx.nd.ones((2,3), mx.gpu())代码时, 最后print 时全为0?

Solution: 没有用上gup,检查gup是否符合cuda, 把代码改成a = mx.nd.ones((2,3), mx.cpu())试试用cup有没有问题。如果CPU可以正常运行,请仔细排查安装教程1-7涉及的问题,或者转到问题3

3 “ImportError: cannot import name libinfo” python import error on windows?

Solution: 这种情况一般为libinfo文件没有找到dll, 请把安装的open, openblas, cudnn 等的.dll文件copy到 你的python/anaconda 的mxnet库下, 例如:笔者用anaconda2则copy到 E:\Anaconda2\Lib\site-packages\mxnet-0.9.2-py2.7.egg\mxnet 下
这里注意32 or 64位

4 Import Error: No module named cv2?

Solution: 在跑mxnet自带的pre_trained model例子时出现的问题, 原因是缺少了opencv 的cv2文件,将OpenCV安装目录里的Python文件夹内的cv2.pyd复制到Python安装目录里Lib中site-packages内即可解决。

5 Failed loading Op conv_conv1 of type Convolution: Cannot find argument ‘cudnn_tune’ ?

Solution:也是在跑pre_trained model时出现的bug, 原因是cudnn没有用上, 请按教程全部重新安装。(记得删除之前的无效版, 否则会起冲突)

3 0
原创粉丝点击