theano環境搭建
原文地址:http://blog.csdn.net/hjimce/article/details/46654229
作者:hjimce
搭建theano實屬不易,因爲每個人的電腦不一樣,所以安裝過程會有所區別,特別是安裝cuda的時候,很容易驅動衝突。網上教程一大堆,但是我都沒搭建成功,最後根據官網的教程,一步一步的琢磨,總算功夫不負有心人。因此寫一下艱辛的theano安裝歷程
環境:win7+64位系統
硬件:筆記本電腦, 顯卡型號:GTX 850M
現在假設電腦啥都沒裝,開始從頭到尾進行環境搭建。
1、安裝Anconda。
因爲如果安裝純淨版Python,還需要自己安裝其它的numpy、matpolt等庫,挺麻煩的。所以我直接安裝集成的Anaconda ,這個軟件包含了Ipython,還有許多python的計算庫。下載地址爲:http://www.continuum.io/downloads
因爲我是64位系統,因此選擇64位的版本,下載後文件爲:Anaconda-2.2.0-Windows-x86_64.exe,下載完成後,就直接雙擊開始安裝,全部都選取默認的就可以了,默認會安裝到:C:\Anconda。
安裝完成後,在window開始菜單下,的所有程序中找到已安裝的Anaconda,如下:
打開Anaconda的命令窗口:Anaconda Command Prompt,然後輸入命令:conda list 可以查看Anaconda爲我們安裝的python相關的包:
裏面有非常多的包,如:numpy, nose, pip, python, scipy。
2、安裝mingw、theano
(1)mingw 安裝
有的Anaconda 是有包含mingw的,不過我下載到的版本安裝完以後上面的包列表中並沒有mingw,也就是C:\Anconda文件下沒有MinGW文件夾,因此需要自己在線安裝。這個如果沒有裝好,後面使用theano的時候會提示:g++ no detect,還有g++不是內部命令什麼的。總之如果錯誤提示g++問題,就代表mingw沒有安裝或配置好。
我們在Anaconda命令窗口中,輸入mingw的安裝命令: conda install mingw。
聲明修改:這一步用命令conda install mingw錯了,最後theano安裝完後,輸入命令“import theano”會出現:no module named gof 的錯誤 。需要把mingw的安裝命令改爲: conda install mingw libpython。纔不會出現後面的no module named gof 錯誤
因爲我已經安裝過了,所以輸入安裝命令後,提示的是:All requested packages already installed。也就是已經安裝完了,如果還沒有安裝的,它會自動鏈接在線安裝。
mingw安裝完後,在C:\Anconda文件下會出現:名爲MinGW的文件夾。
(2)theano 安裝
與mingw的安裝類似,直接在anaconda的命令窗口中輸入命令:pip install theano。接着會自動進行在線安裝,如下所示:
最後安裝成功了會提示:successfully installed theano。
(3)配置環境變量
在桌面上我的電腦右鍵-》屬性-》高級系統設置-》環境變量。即可進入環境變量設置界面如下:
步驟一、在系統環境變量中選擇“變量path”,在後面加入值:“c:\Anaconda\MinGW\bin;c:\Anaconda\MinGW\x86_64-mingw32\lib;”(如果操作系統爲32位的變量值輸入爲“c:\Anaconda\MinGW\bin;c:\Anaconda\MinGW\i686_w64-mingw32\lib;”)(注意要帶分號)
步驟二、新建環境變量。變量名爲“PYTHONPATH”,變量值爲“C:\Anaconda\Lib\site-packages\theano;”(同樣注意要帶分號)
步驟三、打開C盤-》用戶-》當前用戶(根據你的電腦用戶而定)。因爲我的電腦現在所用的是超級管理員用戶Adminstrator,因此打開Adminstrator用戶
用戶目錄
在用戶Adminstrator下面創建文件名爲:“.theanorc.txt”,文件內容爲:
“[blas]
ldflags=
[gcc]
cxxflags = -IC:\Anaconda\MinGW\include”
即:
ok,到了這裏我們已經完成了theano配置的上半部分,這個時候theano已經可以用了,接着需要做個測試,測試一下自己上面的配置有沒有問題。
(4)測試配置是否有誤
測試開始前,需要重啓電腦,因爲我們上面配置了環境變量,系統的環境變量設置完了需要重啓電腦纔能有效果。
測試方法一、
測試代碼:
把上面的代碼拷貝複製一下,然後用python運行一下結果如下:
測試方案二、
在python命令窗口中輸入:
沒有出錯(沒有返回值)則說明已經配置成功,如下圖所示,就代表成功了:
測試方案三、驗證BLAS是否安裝成功。由於numpy是依賴BLAS的,如果BLAS沒有安裝成功,雖然numpy亦可以安裝,但是無法使用BLAS的加速。驗證numpy是否真的成功依賴BLAS編譯,用以下代碼試驗:
3、安裝CUDA
上面的theano配置只是完成了上半部分,這個時候還不能進行gpu加速。這個時候我們可以用如下命令:
>>import theano
>>theano.test()
測試看一下結果如下,這個時候會跳出PyCUDA的相關錯誤信息,因爲我們還沒有安裝CUDA。
OK,接着我們要做的就是安裝CUDA了。具體步驟如下:
(1)安裝vs,根據theano官網的安裝教程,到網站:http://go.microsoft.com/?linkid=9709969 下載到:VS2010Express1.iso,然後用虛擬光驅打開,然後在打開VCExpress文件,雙擊安裝文件:VCExpress\setup.exe
(2)安裝CUDA。
a、下載合適的cuda版本。這一步很操蛋,因爲我一開始是根據官網教程,到這個網站:https://developer.nvidia.com/cuda-toolkit-55-archive 根據我是筆記本電腦同時是win7 64位系統,最後下載了cuda_5.5.20_winvista_win7_win8_notebook_64.exe。等了一個小時終於下載完了,下載完後進行安裝,結果一安裝就出現如下錯誤:
告訴我說圖形驅動與顯卡不兼容,如果繼續安裝,即使安裝成功了,也不能使用cuda。於是我就去下載了個高一點的版本:cuda6.5,等了一個小時終於下載完了,結果一運行還是同樣的錯誤。
最後我下載了最新的版本:cuda_7.0.28_windows.exe 終於沒有錯誤了。因此安裝cuda需要根據電腦的顯卡型號確定,因爲我的電腦是剛買不久的,所以顯卡比較先進。
根據上面的步驟,我的電腦找到了合適版本爲cuda7.0版本。接着就需要安裝cuda_7.0.28_windows.exe這玩意了
b、安裝cuda。下載完後,直接雙擊安裝,選擇自定義安裝,然後把所有包的都勾選上,省的後面出現什麼錯誤。這一步有可能會遇到驅動衝突,導致某些包安裝失敗,比如我第一次安裝的時候,結果圖形驅動包就安裝失敗了。
如果某些包安裝失敗,後面使用theano的時候,會跳出錯誤。像我圖形驅動安裝失敗,運行theano的時候就出現錯誤提示爲cuda版本與驅動版本不一致。因此如果你安裝cuda的過程中,有出現安裝失敗的,那麼請你接着往下看。安裝失敗一般是驅動衝突的問題,這個時候我的方法是用驅動精靈卸載掉顯卡驅動,然後在進行安裝。如果是筆記本電腦,因爲是雙顯卡的,那麼就先卸載掉NVIDIA的,另外一個Intel的驅動保留的着。
然後在進行安裝CUDA ,還有intel驅動最好是官方驅動,不然也有可能衝突,導致安裝失敗。
ok,安裝完後測試一下是否安裝正確。
在命令提示符窗口中輸入:nvcc -V,回車查看是否有版本信息。若出現版本信息,則證明nvcc安裝成功,如下圖所示:
接着我們運行一個cuda自帶的測試例子,名字爲:deviceQuery_vs2012.sln ,這個例子目錄爲:C:\Program Files\NVIDIA Corporation\Installer2\CUDASamples_7.0.{E78AE18E-ED3C-4168-AF5B-561BDF7F2BBB}\1_Utilities\deviceQuery 。我用vs2012打開了deviceQuery_vs2012.sln,並編譯運行得到如下結果,代表安裝成功:
如果有問題,這個例子運行後,會有錯誤提示信息。
4、下載並安裝Microsoft Visual C++ Compiler for Python 2.7。下載到的文件爲:VCForPython27.msi。
接着在dos命令窗口中,cd到VCForPython27.msi所在的目錄,然後輸入安裝命令: msiexec /i VCForPython27.msi ALLUSERS=1
接着會進行安裝VCForPython27.msi。其將被安裝到: C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0.目錄下
安裝完後,可以到這個目錄下看看有沒有上面這個目錄。
安裝完了以後,我們新建一個文件名爲:stdint.h,其文件內容如下:
然後把它放到目錄:
C:\Program Files (x86)\CommonFiles\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h 下面。
5、重新配置文件.theanorc.txt。把步驟2(3)中建立的文件:.theanorc.txt 內容改爲如下內容:
這樣就完成了theano的GPU配置了。上面的:
這個如果你的電腦是裝vs2012,那麼就把10.0改爲11.0。也就是說上面的路徑就是你安裝的vs所在的目錄
6、完整測試。
測試的python代碼如下:
運行結果如下:
(1)GPU測試
下面是用GPU加速的運行結果:
如上運行結果可知,用gpu進行計算時間差不多是0.68秒左右。如果想切換成只用cpu的測試的話,我是通過更改文件:.theanorc.txt的內容。如果開啓gpu,那麼.theanorc.txt的內容爲:
(2)CPU測試。如果想關閉gpu,進行cpu測試那麼就把.theanorc.txt內容改爲:
還有需要重啓電腦。不知道有沒有更好的在gpu與cpu切換的方法,如果有請不吝指導,因爲我這個方法每次都要重啓,下面是測試結果圖:
測試了結果,只用cpu花了13秒的時間,也就是說對於我的電腦,使用gpu進行加速,這速度提高了近20倍。
本文地址:http://blog.csdn.net/hjimce/article/details/46654229 作者:hjimce 聯繫qq:1393852684 更多資源請關注我的博客:http://blog.csdn.net/hjimce 原創文章,轉載請保留本行信息。
參考文獻:
1、http://deeplearning.net/software/theano/install_windows.html#install-windows
2、http://blog.163.com/yuyang_tech/blog/static/216050083201469101518900/
3、http://ihsgnef.github.io/theano-cuda-windows/
附錄:
1、在調用theano.test()測試的時候,如果出現:no module name theano 的錯誤,表明要麼沒有安裝,theano。如果確保已經安裝了,那麼就是你:高級-》環境變量 的路徑沒有設置好。
上面的環境變量設置:“C:\Anaconda\Lib\site-packages\theano;”查看一下是否有這個目錄。比如我另外一臺電腦安裝的時候,不知怎麼回事,theano的安裝目錄竟然是大寫的:Theano,一直不知道錯在哪