在win10環境下,安裝VS2013,Cuda,Anaconda3,並安裝Theano配置GPU詳細教程 ...
一.軟體和環境
(1)安裝日期2016/12/23;
(2)原材料VS2013,cuda-8.0(最好下載cuda7.5,目前theano-0.8.2對cuda-8支持不是很好),Anaconda3-4.2.0(64位);
(3)環境為win10.
二.安裝步驟
(1)安裝VS2013。這個沒什麼可說的,下載64位版本後就是一路下一步、確定就行,記住安裝位置就可以了,我這裡的安裝目錄是D:\software\VS2013:
接著右鍵我的電腦-》屬性-》高級系統設置-》環境變數,之後編輯系統變數Path,加入兩個路徑D:\software\VS2013\VC\bin和D:\software\VS2013\Common7\IDE,以分號隔開,如圖:
點擊確定即可。
(2)安裝cuda。這個也沒什麼可說的,到官網上下載cuda,並一路下一步+確定就好了,註意如果安裝過程中win10提示阻止某項操作,一定要選擇允許本次操作或允許程式所有操作,否則cuda就會安裝失敗。Cuda官網地址為
http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/#axzz46v2MC6l8,
下載地址為https://developer.nvidia.com/cuda-downloads,
如圖:
(註意:這是cuda-8版本,對目前版本的theano支持不是很好,不過不影響使用,最好還是下載cuda7.5,我這裡懶得再重裝一遍,所以就用的cuda-8)
還有一定要記住cuda的安裝路徑,我的路徑就是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,如圖:
(3)右鍵我的電腦-》屬性-》高級系統設置-》環境變數,可以看到系統變數中增加了兩個變數CUDA_PATH和CUDA_PATH_V8_0,如圖:
之後編輯系統變數Path,加入兩個路徑%CUDA_PATH%\lib\x64和%CUDA_PATH%\bin,要用分號隔開,如圖:
點擊確定。
打開命令行,輸入nvcc -V,如果出現下圖則安裝成功:
並可到目錄C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\1_Utilities\deviceQuery下用VS2013打開並運行測試樣例deviceQuery_vs2013.vcxproj文件,如圖:(註意C:\ProgramData為隱藏文件夾,需要點擊C盤-》查看-》選項-》查看,選中顯示隱藏的文件、文件夾和驅動器,點擊確定。如圖)
圖為顯示C:\ProgramData文件夾的查看選項
圖為deviceQuery_vs2013.vcxproj的位置
圖為在VS2013中的運行結果
最後一行為Result = Pass則表示安裝配置成功。
(4)安裝Anaconda3-4.2.0,這個很簡單,就是一路確定即可,記住安裝位置,如我就是安裝在D:\software\Anaconda3,如圖:
接著右鍵我的電腦-》屬性-》高級系統設置-》環境變數,在用戶變數中添加PATH,並加入路徑D:\software\Anaconda3,D:\software\Anaconda3\Scripts和D:\software\Anaconda3\Library\bin,點擊確定。如圖:
之後進入命令行輸入python,如果出現如圖信息,則安裝成功:
關閉命令行。
(5)安裝mingw和libpython。打開命令行後輸入conda install mingw libpython即可,目前libpython已經支持python3.5了,就不用再配置python3.4的環境了。註意如果安裝mingw速度很慢,則可ctl+c並退出命令行,再進入命令行修改Anaconda的鏡像,這裡推薦清華的鏡像,方法為在命令行中輸入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
,之後再conda install mingw libpython即可。
之後到Anaconda3的安裝目錄中可以看到MinGW的文件夾,如圖:
(註:網上說需要把MinGW的路徑加入到環境變數,其實不用,等會兒再theano的配置文件中標出MinGW的位置即可)
(6)安裝theano。首先打開命令行,輸入conda install scipy,之後再輸入pip install theano即可。(為什麼要輸入conda install scipy我也不明白,但是網上建議)。之後在個人主文件夾下新建一個“.theanorc.txt”的文檔。個人主文件夾就是打開命令行後所顯示的文件夾路徑,比如我的就是C:\Users\15540:
註意theano的配置文件為.theanorc.txt,註意前面那個點要有,並且文件名為.theanorc,.txt是文件類型,不要弄錯。打開.theanorc.txt寫入以下信息:
[global]
openmp=False
device = gpu
optimizer_including=cudnn
floatX = float32
allow_input_downcast=True
[lib]
cnmem = 0.8
[blas]
ldflags=
[gcc]
cxxflags=-ID:\software\Anaconda3\MinGW
[nvcc]
flags = -LD:\software\Anaconda3\libs
compiler_bindir = D:\software\VS2013\VC\bin
fastmath = True
註意需要把cxxflags=-ID:\software\Anaconda3\MinGW換成你的Anaconda3中MinGW的位置,flags = -LD:\software\Anaconda3\libs換為你的Anaconda3中libs的位置,compiler_bindir = D:\software\VS2013\VC\bin換為你的VS2013中VC\bin的位置;還有cnmem = 0.8這個網上說設為1,但是貌似有點問題,建議設為小於1的值,如我這裡設為0.8 ,這就可以避免後面顯示CNMEM is disabled了。
(7)更新cudnn文件,到網上搜索cudnn下載下來(到官網註冊一下就可以下載了,官網網址為https://developer.nvidia.com/cudnn)。將下載來的文件解壓,解壓出cuda文件夾,裡面包含3個文件夾,如圖。將設三個文件夾替換掉系統裡面的對應文件,進行覆蓋替換即可,例如我的文件目錄為C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。覆蓋掉後面導入theano時會就不會出現CuDNN not available提示了。
(8)測試theano。打開命令行,輸入python,在輸入import theano,如果出現UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 11: invalid continuation byte這種編碼問題,這是因為掉用nvcc返回的字元串是使用的cwindows預設的預設編碼,直接找到theano中對應的報錯文件,把源碼出錯的地方改為 *.decode("GBK")就可以。比如我的是在theano下的__init__.py出現的編碼問題,則修改為:
(如果出現上述錯誤,關閉命令行修改錯誤,重輸一遍命令即可)出現以下畫面則表示成功。
(註:可以看到仍有warning,不過不影響使用,出現warning的原因主要是cuda-8對目前版本的theano支持不太好導致,不過相信以後更新的theano會解決這個問題,如果實在接受不了這個warning就安裝cuda7.5,步驟一樣)
三.其他問題
(1)不要在環境變數添加PYTHONPATH變數,否則容易在import theano後出現configparser找不到或沒有這個組件這個問題(在我這裡是這樣的);
(2)建議在安裝完cuda後重啟電腦;
(3)如果在命令行輸入命令後出現什麼問題,建議修改完問題後重啟命令行;
(4)如果還有其他問題,試試重啟電腦後在import theano,如果還有問題,一般就是配置文件.theanorc.txt的問題(我這個配置方式不一定百分之百的適合你),下麵列出一些我參考的文章:
http://blog.csdn.net/u011821462/article/details/50145221
http://blog.csdn.net/stormragewang/article/details/51261465
http://blog.csdn.net/voidfaceless/article/details/53711550