注:本文原創,作者:Noah Zhang (http://www.cnblogs.com/noahzn/)
我筆記本配置比較低,想裝個輕量級的MXNet試試,裝完之后報錯,不是有效的應用程序,找不到libinfo.py等等,同樣的問題在github上也有很多人問,但是作者說也不知道問題在哪,自己折騰了兩天,終於裝好可以使用了,分享如下:
首先報一下我的機器環境:Win7-64bit,已裝了WinPython-64bit-3.4.3.2、CUDA5.5、VS2013 update5。
一、獲取MXNet:
git clone --recursive https://github.com/dmlc/mxnet
我的路徑是D:\mxnet\
二、安裝其他依賴:
需要OpenCV、OpenBLAS、CuDNN、CUDA(強烈推薦,前三個用我上傳的打包版)
1. OpenCV3:
官網下載(http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/opencv-3.0.0.exe/download),也可以使用我上傳的單獨版本。鏈接: http://pan.baidu.com/s/1c0YkB8 密碼: mnu6
2. OpenBLAS:
官網下載(https://sourceforge.net/projects/openblas/),目標是生成openblas.lib,自己弄比較麻煩,可以看后面我提供的現成版。
3. CuDNN:
官網下載(https://developer.nvidia.com/cudnn),下載需要注冊英偉達開發者賬號,可以直接看我后面提供的現成版。
4. CUDA7.5
官網下載(https://developer.nvidia.com/cuda-downloads)並安裝。我上傳的單獨版本:鏈接: http://pan.baidu.com/s/1c2Bd4Gg 密碼: fpm2
5. 打包版:
為了方便大家,不用自己去生成openblas.lib,我打包了OpenCV3、OpenBLAS、CuDNN,大家可以直接下載解壓到mxnet目錄下(我的目錄是:D:\mxnet\mxnet\mxnet_thirdparty) 鏈接: http://pan.baidu.com/s/1c1VLZAK 密碼: ntrj
三、增強VS2013:
因為MXNet用到了許多C++ 11的新特性,所以需要增強VS2013使其支持,下載 Visual C++ Compiler Nov 2013 CTP(https://www.microsoft.com/en-us/download/details.aspx?id=41151)並安裝,然后把 C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2013 CTP\ 文件夾內所有拷貝至你的VS2013目錄,如:拷貝至 D:\Microsoft Visual Studio 12.0\VC\ 目錄下覆蓋。
也可從我的百度盤下載:鏈接: http://pan.baidu.com/s/1bEVi5C 密碼: p6s3
四、修改配置文件(不確定是否必須,我摸索過程中自己改的。。):
打開 mxnet\make\config.mk,更改以下幾處:
第49行:USE_CUDNN = 1
第69行:USE_BLAS = openblas
另外搜索mxnet目錄下其他config.mk文件,相應的,都把USE_BLAS后的值改成openblas。
五、CMake編譯:
我下載安裝了最新版的Cmake,鏈接: http://pan.baidu.com/s/1o7JusDs 密碼: aicj
然后按照我下面這樣設置,Configure,Generate,沒報錯就OK了

六、生成libmxnet.dll:
VS2013打開mxnet_build目錄下的mxnet.sln,模式切換為Release,編譯一下,全部OK之后,在mxnet_build\Release目錄下生成了libmxnet.dll文件。
七、安裝Python的MXNet庫:
把第六步生成的dll文件拷貝至D:\mxnet\mxnet\python\mxnet目錄內,切換至該目錄,執行python setup.py build; python setup.py install
八、解決問題:
這時候安裝完畢后,import mxnet 是會報錯的,而且兩次import報的錯還不同,一次是找不到dll,第二次是找不到libinfo.py,就是這個問題github上很多人問,但是並沒有完整的解決方案,我自己摸索的解決方法是:把我上傳的打包版壓縮包里的8個dll文件復制到python.exe目錄下,然后就行啦!
九、跑個例子試試:
跑例子也是蠻頭疼的,示例代碼里相關配置都是Linux下的,dataset也要自己下載。。在D:\mxnet\mxnet\example\image-classification目錄內新建文件夾:mnist
下載dataset:鏈接: http://pan.baidu.com/s/1gfHIXt5 密碼: u33x
4個文件分別解壓到mnist目錄下,把文件名中的'.'全改成'-',即讓四個文件沒有后綴名。(或者你可以直接更改train_mnist.py里的代碼)
官方例子見這里:http://mxnet.readthedocs.io/en/latest/get_started/#python
