Windows10下安装MXNet-走过的那些坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/marleylee/article/details/81988365

一、一开始看到各种安装方法,简单的,用pip安装mxnet的python CPU版本和GPU版本。

windows还是linux,python2还是python3,安装命令都一样

用pip安装mxnet的python CPU版本:pip install mxnet

用pip安装mxnet的python GPU版本:pip install mxnet-cu80   mxnet-cu80中cu80的意思是cuda8.0

安装python GPU版本的时候总出错,看到:又快又稳地安装mxnet-cu8.0

按照教程安装gpu的gluon到99%时会出错,使用豆瓣镜像安装可以又快又稳地安装,地址如下

pip install --pre mxnet-cu80 -i https://pypi.douban.com/simple # CUDA 8.0

如果你的可以,恭喜你,安装成功。我的出错了,试了很多次,感觉已经不能用了,下面带你从头配置安装mxnet.

二、cpu版本的,推荐使用编译好的版本,gpu版本的推荐自己编译。我的是Windows10 64位系统,这里以win10为例,你安装时注意自己的系统。

一定要检查你的显卡是否能用cuda, 如果不能,是用不了mxnet的 GPU版的,请安装CPU版,我的可以,先安装对应版本的英伟达驱动。

1 安装VS2013或者VS2015

我一开始安装了VS2015,cmake的时候总出错,建议安装VS2013,安装参考:https://jingyan.baidu.com/article/495ba841edca2f38b30ede3d.html

如果安装的是vs2013,则需要增强vs对c++11的支持,下载 Visual C++ Compiler Nov 2013 CTP并安装:

  • 卸载”Microsoft Visual C++ 2013 Redistributable (x64)”, 否则安装CTP时会出现0x80070666错误
  • 安装CTP
  • 拷贝C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2013 CTP内的文件到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC (注意:如果VS的安装目录不是默认目录,则上述目录依然存在,但应该拷贝到对应的安装目录下!)

2 安装CUDA、cuDNN

CUDA下载地址:https://developer.nvidia.com/cuda-toolkit
直接按next安装就可以,win10系统下最好使用8.0
cuDNN:https://developer.nvidia.com/cudnn
下载最新的v7.2版本

解压后把cudnn目录下的bin目录加到PATH环境变量里

下载后得到Cudnn文件夹(名字也叫cuda), 分别将里面的cuda/include、cuda/lib、cuda/bin三个目录中的内容拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0对应的include、lib、bin目录下即可

验证是否装好命令:nvcc -V

3 安装opencv3.0

下载地址:http://opencv.org/
下载并解压,然后创建环境变量OpenCV_DIR,把opencv/build目录添加进去
把\opencv\build\x64\vc12\bin和\opencv\build\x86\vc12\bin添加到PATH路径

具体安装配置参考:https://jingyan.baidu.com/article/64d05a0245aa70de55f73b12.html

记得要配置文件属性使所有项目都适用。

配置文件属性使所有项目都适用可以参考:https://www.zhihu.com/question/24400428,比较详细

4  安装openBLAS

openBLAS(解压就行):https://sourceforge.net/projects/openblas/files/v0.2.14/
注意:需要下载mingw64_dll.zip和OpenBLAS-v0.2.14-Win64-int32.zip两个文件!
创建环境变量 OpenBLAS_HOME,把openBLAS根目录加进去
把DLL所在目录需要添加到环境变量path中

5  安装Anaconda

其实就是安装python,如果那样的话还得安装很多包,这里安装anaconda比较方便。

python3之前安装有问题,这里建议安装anaconda2,里面集成了python2。安装前建议清理所有的python版本

下载地址Anaconda , 下载2.7,直接next安装,把安装路径添加到PATH里去,安装目录不要有空格

安装python编辑器的话建议安装pycharm,具体不在这里赘述。

6  安装mxnet

下载地址:https://github.com/dmlc/mxnet
工程里面包含有引用信息,记得把引用的文件也下载下来
解压并在根目录新建build目录
下载CMakehttps://cmake.org/

打开CMake,指定好目录后按下Configure,选择相应版本的vs win64工程

如果出现找不到cudnn,手动设置cudnn位置在点击Configure,直到警告全部消失
最后点击generate生成Visual Studio工程。

7 编译mxnet

打开mxnet.sln,注意编译选项改成releasex64模式,编译ALL BUILD,最后会在build/release文件夹下生成libmxnet.liblibmxnet.dll,把这个目录加入PATH

8 配置python

运行cmd
cd
进入到mxnet/python目录下,输入python setup.py install
安装完后重新打开cmd
运行python命令,输入import mxnet as mx
a = mx.nd.ones(1)
b = mx.nd.ones(1,mx.gpu())

a.asnumpy()
b.asnumpy()

表示配置成功。

如果gpu变量显示为0,说明编译有问题,具体看网站https://github.com/dmlc/mxnet/issues/1228 

三 、如果上述编译出错,不能点击generate生成Visual Studio工程

我们不使用DMLC在github上发布的那一套MXNet,早已经不更新了。

日更新版本:https://github.com/yajiedesign/mxnet/releases

新版的MXNet里有一些参数在vc12编译出的库里没有,所以推荐使用vc14版本,也就是VS2015。可以安装C++11支持

接下来按着步骤二进行操作就可以了

四、安装常见错误

一是WindowError:126
二是ImportError: cannot import name libinfo

解决方案是

1st: python build & install success

2st: copy all dependence dlls(opencv,openblas etc.) to C:\Python27\Lib\site-packages\mxnet-0.5.0-py2.7.egg\mxnet\

3rd: before import mxnet add mxnet package path to PATH environment.
os.environ[‘PATH’]=r’C:\Python27\Lib\site-packages\mxnet-0.5.0-py2.7.egg\mxnet;’ + os.environ[‘PATH’]

简单的说就是把openCV 和 openBLAS的dll放入 %your_python_dir%\Lib\site-packages\mxnet-0.X.0-py2.7.egg\mxnet\文件夹下,并在系统的环境变量中加入该文件夹路径

还有个错误是提示dll的位数不对,这是由于第三方依赖库的位数没有统一,建议都使用64位

猜你喜欢

转载自blog.csdn.net/marleylee/article/details/81988365