深度學習框架Theano利用GPU加速

Author: Zongwei Zhou | 周縱葦
Weibo: @MrGiovanni
Email: zongweiz@asu.edu


Please cite this paper if you found it useful. Thanks!
Wang H, Zhou Z, Li Y, et al. Comparison of machine learning methods for classifying mediastinal lymph node metastasis of non-small cell lung cancer from 18F-FDG PET/CT images[J]. 2017, 7.


Reference.


說明一下:我的配置環境是Windows 7,顯卡類型NVIDIA GeForce GTX 960M,Python版本為64位的2.7.11, CUDA版本為7.5.1,Visual Studio版本為VS2012

天才第一步:檢查一下你的電腦是否有NVIDIA系列的顯卡,沒有的話就別往下看了。深度學習的GPU加速只支持NVIDIA系列的顯卡。

檢查步驟:右鍵計算機-屬性-設備管理器(左上角)-顯示適配器

用GPU的理由很簡單,就是,特別是深度學習的實驗,用CPU的話一天兩天的在那兒訓練,根本沒辦法愉快地調參,用GPU的話可能就幾個小時完事兒了。


1. 下載

1.1 下載安裝Theano

參考這個:Keras深度學習框架配置
簡單來說就是先把Python(我用的是Anaconda)安裝好,然后在Anaconda Prompt命令行中輸入pip install theano,回車,接著輸命令conda install mingw libpython,回車。然后。。

按照1.2.3做,Theano就安裝好嘍

1.2 下載CUDA

http://www.nvidia.cn/object/cuda_get_cn_old.html 下載驅動、工具包、軟件開發包,按順序安裝。最后一項的CUDA安裝請看1.3 CUDA安裝!!!

按順序安裝!

1.3 CUDA安裝

1.3.1 cuda的安裝文件
  


  直接雙擊exe文件,彈出后,首先會監測一下你的運行環境,如果找不到Nividia對應的顯卡設備,他會提示你是否要繼續安裝。這里面nvidia的顯卡,最起碼也是8800以上的,要不是無法編寫CUDA的。千萬不要電腦上面是intel或者AMD的顯卡,卻要編寫cuda,除非你有錢買一個cuda-x86這個編譯器。
1.3.2 彈出的對話框直接OK就行,這個是CUDA的一些安裝文件,無所謂的

1.3.3 他會監測你的電腦是否支持cuda的搭建,等待就行

1.3.4 系統檢查:這兒會有可能報錯哦

遇到報錯的話請跳轉到1.3.彩蛋,那兒有提供解決方法。


1.3.5 選擇同意并繼續

1.3.6 推薦先選擇自定義安裝
最主要的是cuda document\cuda Toolkit \cuda samples(SDK),Nsight\圖形驅動程序,3D如果需要的話安裝,不安裝也無所謂。這里主要就是能看見都有什么,免得漏掉了,博主當初就因為選了精簡安裝,沒安裝上SDK。

1.3.7 安裝的位置,推薦自己建三個好找的文件夾,不用他默認的路徑,免得稍后配置環境變量麻煩。
默認的亂七八糟的安裝位置,不要它們

這是我設的地址,反正就是簡潔就好了

1.3.8 下一步安裝就行了。至此,cuda的安裝就搞定了

1.3.彩蛋

報錯:NVIDIA installer cannot continue.

NVIDIA Installer cannot continue.

不要慌,這是個大問題。先去把你的NVIDIA顯卡驅動更新一下,確保是最新的。

方法是:去設備管理器,找到顯示適配器的NVIDIA那兒,右鍵,選擇更新驅動程序軟件

然后按照這個方法:完美解決NVIDIA最新顯卡驅動無法找到兼容的圖形硬件,就可以解決這個錯誤了。


2. 配置文件

打開cmd命令行界面,輸入nvcc -V,回車,如果出來這個版本號,說明前面的步驟成功啦。

nvcc -V

然后可以看到cmd的默認地址

Paste_Image.png

我的是C:\Users\Administrator,去電腦上找到這個位置,新建一個txt文件,將它命名為“.theanorc.txt”,在里面要寫一點代碼,我目前寫的是:

[blas]
ldflags = 
[gcc]
cxxflags = -IC:\MinGW\include
[nvcc]
flags=-LC:\Users\Administrator\Anaconda2\libs
compiler_bindir=E:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
[global]
device=gpu
floatX=float32

解釋一下:根據你的自身情況需要修改的是

  • cxxflags這句,“-I”保留,后面是MinGW\include的系統位置,對了,如果你沒有裝MinGW,那,,就趕緊裝一個呀,下載地址:
    http://www.mingw.org/
摁這個下載,然后一直下一步下一步就好了

你會發現下載完的C:/MinGW/里面并沒有include這個文件,那么就打開MinGW的安裝管理界面,如下圖

選中這里所有的框

將右側所有的小方塊全部選中(右擊->mark for install),然后選擇Installation菜單的apple changes,等待下載安裝完成即可,include文件就出來啦。

  • flags這句,路徑指向你的anaconda的libs地址,當然如果你裝的是python,那就指向python的libs地址。
  • compiler_bindir這句,指向VS的bin,這兒不多說了。

我大概覺得這是在配置吧,反正當python導入theano的時候回去運行這個txt文件。你可以去Anaconda Prompt界面輸入python,回車,import theano,回車,看看結果,應該會有顯示用到了GPU。
然而并沒有這么簡單,我這兒開始報錯了:


錯誤原因是:CUDA和Visual Studio的版本不符,我這兒測試通過的版本分別是

CUDA7.5.17和VS2012

你懂得,再裝一個VS唄,哈哈,沒那么簡單,CUDA和VS的安裝順序呢,是先裝VS,再裝CUDA,因為在安裝CUDA的時候會自動檢測電腦里面的VS,如果你是后裝的話,檢測不到咯,白費。所以遇到了這個問題就先裝一個版本對的VS,然后再裝一遍CUDA。


剛剛試了一下GPU,快的嚇了我一跳,這么說吧、

原來、
訓練一趟2.8小時、
現在
訓練一趟89秒、

快的飛起、我去!
當然跟我的NVIDIA GeForce GTX 960M顯卡、
也是分不開的。:)


祝一切順利

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容