1. 程式人生 > >Win10 + Python + MXNet + VS2015配置

Win10 + Python + MXNet + VS2015配置

我們 更新 set 自帶 and 截圖 png class 負責

項目需要使用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配置