Win10 + Python + MXNet + VS2015配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win10 + Python + MXNet + VS2015配置相关的知识,希望对你有一定的参考价值。

项目需要使用MTCNN来检测、对齐、剪切出人脸,它是使用MXNet作为框架的,但是我自己的Ubuntu里各种框架乱成一团,不想再添乱就铁了心要在windows里配一个。无奈网上的资料不多,挣扎了几天之后决定留下这么一份文档。

 

首先我们使用的不是DMLC在github上发布的那一套MXNet,它那个的windows版2016年就不更新了,现在负责维护的地址是这个:

https://github.com/yajiedesign/mxnet/releases

这是一个日更的版本,非常新。巧的是MTCNN也是用新版的MXNet,所以16年版的就不好使了,得靠这个日更的,以下关于这一套产品统称为【日更版】。

新版的MXNet里有一些参数在vc12编译出的库里没有,所以推荐使用vc14版本,也就是VS2015。

 

在正式讲安装配置步骤之前,先推荐一个软件叫Dependency Walker,它的作用是理清楚库文件的依赖关系,有助于后面讲依赖库的版本情况:

技术分享

这是软件的使用截图,注意红框部分,这里需要我们对文件名有一点敏感:

1、LIBopenBLAS 没什么特别的,日更版里面自带了。

2、CUDART64_80、CURAND64_80、CUBLAS64_80、CUFFT64_80、NVRTC64_80 这四个留意后面的数字,这一组文件可以在3rdparty\\cudart里找到,如果版本号不一样,请自行更正,日更版应该自带。

3、cuDNN64_5 这是需要自己去下载的文件,从文件名可以知道我们需要一个64位的cudnn,版本号大概是5开头,根据上面的说法我们还需要一个和CUDA8.0配合的cudnn。

4、NVCUDA 这很明显是NVIDIA的CUDA,不过没带版本号先不管它。

5、VCOMP140 这个可以翻3rdparty\\vc 里找到,版本号不对请自行修改

6、KERNEL32、USER32 这种大众脸应该不是什么特别的需求,不管它们

 import过程中出现的 [WinError 126]基本都是因为这个原因。

————————————————————————接下来开始正式讲步骤————————————————————————————

1、下载并解压日更版地址里的vc14 base package

2、下载并解压日更版地址里的2017xxxx_mxnet_x64_vc14_gpu.7z 到上面base package的目录里,形成一个完成的结构

技术分享

2、其中最重要的一个东西便是其他各种教程里说的需要make呀,compile呀的那个 build\\libmxnet.dll,也就是上边dependency walker关注的这个文件,所以预编译版便是大佬帮我们事先编译好了这个dll。

3、[WinError 126]出现的原因在于import一个模块的时候,它的依赖库需要的依赖库也必须可以找到,不然就报错。

4、照上面所说装好cuda8.0,这个教程很多 也很好装。

5、准备好cudnn5系列 for cuda8.0

6、关注一下日更版里的文件,先运行根目录下的setupenv.cmd,这个文件是设置所有的相关环境变量的

建议点开之前先留意一下【用户变量】里的path,我在使用过程中出现字符过长被截断的问题,换句话说我之前的用户变量被破坏掉了一部分,所以请提前做好准备

7、命令行到python目录,执行

D:\\MXNet\\python> python setup.py install

8、最后进到 MXNet\\3rdparty 里把cudnn的相关文件复制进去就好了,其他的依赖文件应该都在

9、可以进python尝试import mxnet了。

祝你成功

 

以上是关于Win10 + Python + MXNet + VS2015配置的主要内容,如果未能解决你的问题,请参考以下文章

MXNet在64位Win7下的编译安装

MXNet 学习 --- 最易上手的深度学习开源库 --- 安装及环境搭建

Windows下编译mxnet

MxNet C++和python环境配置

python Mxnet Viz

python 读取mxnet recordio