win10成功安装GPU版MXNET的经历

原创
2017/02/24 10:15
阅读数 8.3K

MXNET是一款用于深度学习的工具和框架。优点是使用方便(支持python,R语言等等),性能好,支持多GPU,对神经网络支持比较好。有高层的符号定义语言,能比较方便地构建复杂的多层神经网络。目前得到亚马逊和apache的大力支持,前途应该还不错。

最大的缺陷就是文档少,用户群体不够多。MXNET的传送门:https://github.com/dmlc/mxnet/。

-----------------------------------------------------------------------------------------

新建了一个mxnet技术交流群, 群 号:589720184。有兴趣的可以加入。

-----------------------------------------------------------------------------------------

2017年9月25日更新:

安装GPU版本:pip install mxnet-cu80==0.11

(注释:==后面跟的是版本号。例如,0.11代表着0.11版本。在win10,gtx1080ti上测试通过)

2017年5月26日更新:

mxnet现在可以通过Pip直接安装了。

安装CPU版本:

pip install --upgrade mxnet

安装GPU版本:

$ sudo apt-get update
$ sudo apt-get install -y wget python
$ wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py
$ pip install mxnet-cu80

for windows platform:

pip install mxnet-cu80-win

详细内容参考:http://mxnet.io/get_started/install.html

-----------------------------------------------------------------------------------------

 

MXNET在win10上安装有些麻烦。网上安装成功的案例不少,很多都可以参考。例如,《Windows安装mxnet》。传送门:http://www.cnblogs.com/wacc/p/6096785.html。 

和《Windows安装mxnet》的环境有些不一样,我的环境是win10+cuda8+cudnn5.1。注意:安装环境是64位的。以下用到的软件通通都是64位的,千万不要搞成32位的。

 

1、第一步先安装显卡驱动,以便后面的cuda8安装时候能够识别显卡。

2、安装vs2013或者vs2015. 这步最后在cuda8安装之前完成。因为,cuda8安装时候会自动配置vs2013或者2015.

如果安装vs2013,那么还需要安装多一个Visual C++ Compiler Nov 2013 CTP

3、安装cuda8.

cuda8安装成功后,可以在vs2013或2015里面跑跑cuda的例子,看看是否正常。

4、安装opencv3.1. 

 

5、安装openblas。

 

6、安装cmake。

我选择了带图形界面的windows版本cmake。

7、下载mxnet源代码。

git clone --recursive https://github.com/dmlc/mxnet.git

8、用cmake为mxnet项目制作一个vs2013或者vs2015的工程。(因为我用到cuda和cudnn,所以cmake这里要把cuda和cudnn相关目录设置正确. )

 

然后用vs2013或2015编译,选择release和64位编译,生成需要的libmxnet.dll。

9、安装python环境(mxnet只支持python2.7)。我这里直接用Anaconda安装相关的python包。

10、在python里安装mxnet。这步是最容易出错的。最常见的错误是:WindowsError: [Error 126]。就是DLL加载失败。为啥? 因为libmxnet.dll依赖多个dll文件,有一个找不到,就会报这个错。我尝试了跟踪dll的调用,终于找到解决办法。

1)把所有的opencv、openblas、cuda和cudnn的dll文件,通通拷贝到同一个目录下。例如,E:\common。dll文件都复制到这里。这些dll文件包括: cublas64_80.dll,cudart64_80.dll,cudnn64_5.dll,curand64_80.dll,libopenblas.dll,nvrtc64_80.dll,opencv_world310.dll,libgfortran-3.dll。libgfortran-3.dll很特殊,它是libopenblas.dll依赖的dll。我通过网络单独下载的。想要查看dll的依赖关系,可以用dependency walker的软件。

2)把E:\common目录设置在环境变量PATH里面。以便Python程序能够查找到。

11、启动python测试。import mxnet as mx.  这里应该不会再报错了。

 

 

此外,通过mxnet的预编译版本进行安装是最快的途径,因为不需要编译源代码,能节省不少时间。但是,这个途径不一定能成功(我只在win7系统成功安装过非GPU版的MXNET)。

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部