近期在windows下安装了mxnet,写个blog记录安装过程,方便日后再次使用。
在github中下载源码
github中下载的源码只有mxnet部分的代码,从源码安装对应的dmlc-core, mshadow,nnvm,ps-lite等模块的代码,并copy到mxnet相应的文件夹中
前期需要准备的环境
- vs2015 虽然vs2013可以下载插件支持c++11,我尝试过,最后编译会出问题,最好一部到位vs2015
- cuda 8.0和cudnn-v6
- openblas 以及openblas依赖的mingw.dll文件
- opencv
- cmake
- mingw安装gcc,最好安装5.0以上的版本
安装过程
- 打开cmake 把mxnet中的CmakeList.txt 拖入,
- 确保USE_CUDA, USE_CUDNN, USE_MXNET_LIBNAMING, USE_OPENCV, USE_OPENMP,全选上
- 改生成路径“where to bulid the binaries ”为mxnet/build
点Configure 按钮,错的地方填下面的东西,再点Configure 按钮,直到没有红色为止,再点Generate按钮 - OpenCV_DIR : opencv-3.1.0/build
- OpenCV_CONFIG_PATH :OpenCVConfig.cmake文件
- CUDNN_INCLUDE: cuda/include
- CUDNN_LIBRARY : cuda/lib/x64/cudnn.lib
- OpenBLAS_INCLUDE_DIR should be :OpenBLAS-v0.2.19/include
- OpenBLAS_LIB :OpenBLAS-v0.2.19/lib/libopenblas.dll.a
python端使用
用vs编译后生成了libmxnet.dll文件后,就在python路径下使用setup.py install安装。
但是在使用过程中,如果import mxnet报错”WindowsError [126]”,需要检查libmxnet.dll文件是否完整,使用dependecy walker软件检查libmxnet.dll文件,我安装过程中检查是有很多.dll文件缺失的,将下图的dll文件copy后
还是出问题,进一步检查是opencv的dll文件缺失,我把opencv的目录下的C:\opencv\build\bin\Release加到环境变量path中就编译通过了