Windows10下安裝MXNet-走過的那些坑
一、一開始看到各種安裝方法,簡單的,用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
- 解除安裝”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
解壓後把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路徑
記得要配置檔案屬性使所有專案都適用。
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
開啟CMake,指定好目錄後按下Configure,選擇相應版本的vs win64工程
如果出現找不到cudnn,手動設定cudnn位置在點選Configure,直到警告全部消失
最後點選generate生成Visual Studio工程。
7 編譯mxnet
開啟mxnet.sln,注意編譯選項改成release,x64模式,編譯ALL BUILD,最後會在build/release資料夾下生成libmxnet.lib和libmxnet.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()
表示配置成功。
三 、如果上述編譯出錯,不能點選generate生成Visual Studio工程
我們不使用DMLC在github上釋出的那一套MXNet,早已經不更新了。
新版的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位
注意:我之前都是用筆記本安裝或者伺服器,這次用桌上型電腦,大坑,安裝好了顯示找不到顯示卡,檢查顯示卡驅動是好的,但是檢測不到顯示卡,檢查後發現連線的是AMD顯示卡,英偉達顯示卡沒有連線,換連線英偉達顯示卡,可以用mxnet gpu版本,整個安裝成功。