cuda 实现sift gpu_为Keras提供GPU加速
在剛入坑機器學習時,書上所使用的算法(回歸、決策樹等)及實例較為簡單,一般CPU(中央處理器)的計算能力均能勝任,從而快速實現。但若使用keras(一種基于深度學習框架的高級應用接口)進行深度學習,利用海量的數據反復訓練神經網絡中成百上千萬個參數時,CPU顯得捉襟見肘,需要GPU(圖形處理器)來實現加速訓練。
為什么GPU在深度學習中比CPU更快呢?這是由于兩者的設計不同,CPU由專為串行處理而優化的幾個部件組成,擁有少量的算術邏輯單元,主要針對不同任務的管理與協調;而GPU則擁有數以千計個算術邏輯單元組成的并行計算架構,專為龐雜而繁重的計算任務而設計。
簡單的理解,當對一組數據反復執行同一種計算任務時,GPU更合適,而對同一組數據執行多種不同的任務時,CPU更合適。
以本渣渣的實際經驗來看,使用GTX970(CUDA1600個)訓練2萬個樣本的卷積神經網絡將比A10處理器快20-30倍(視batchsize大小而定)。
1.安裝CUDA及cuDNN
GPU加速器于2007年由NVIDIA率先推出,CUDA(Compute Unified Device Architecture)是使GPU能夠解決復雜計算問題的并行架構,它包含了CUDA指令集以及并行計算引擎。現在,該架構已應用于GeForce、ION、Quadro以及Tesla等多款產品上,相比AMD而言,支持GPU加速的NVIDIA顯卡品種繁多。
因此想要用GPU加速的話基本只要確定顯卡是不是NVIDIA品牌的就可以了,當然如果型號過于老舊還是不太確定的話可以前往官網(https://developer.nvidia.com/cuda-gpus)查詢,查詢列表還能幫助你了解所持顯卡的算力,下圖僅為部分。
在下載CUDA之前首先需確定所持顯卡支持的CUDA版本,可通過NVIDA控制面板中的系統信息進行查看。若無法找到NVIDA控制程序請更新顯卡驅動,一般最新的驅動程序都能支持較新的CUDA版本。(當前TensorFlow-GPU-1.14版僅支持CUDA10.0,本渣在安裝10.1后運行提示找不到cudart64_100.dll,后期圖文中請無視具體版本號)
進入官網(https://developer.nvidia.com/cuda-toolkit-archive),根據操作系統選擇下載支持的CUDA版本。(下文僅演示離線安裝)
雙擊下載的可執行程序(cuda_10.0.130_411.31_win10.exe)進入安裝引導,經過解壓(臨時文件可任意存放,會自動刪除)及同意許可協議后進入安裝選項。安裝方式提供'精簡'(其實是完整安裝,見英文注釋'install all')與'自定義'兩種。這里推薦'自定義',因為有些組件(比如驅動程序)可能已經安裝,且版本更高,以免被覆蓋。
如圖選擇CUDA列表中的Development,Runtime,Documentation,Samples的四個組件,其他組件可按需安裝。(本渣在安裝Nsight兩個組件時碰到重啟錯誤,可能原因是沒有關閉受限狀態)
記住安裝位置(后面設置環境變量需要用到),點擊'下一步'至出現'安裝程序已完成'。
接著下載cuDNN,其全稱為NVIDIA CUDA? Deep Neural Network library,是NVIDIA專門針對深度神經網絡中的基礎操作而設計基于GPU的加速庫。
下載需要登錄賬戶,注冊過程比較簡單,一頓操作后即可完成注冊(傳送門:https://developer.nvidia.com/rdp/cudnn-download)。登錄后,選擇與CUDA版本及操作系統對應的cuDNN下載,并將下載的文件解壓放置在CUDA安裝目錄其版本號對應的文件夾下。( C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0)
最后,設置相應的環境變量。右鍵‘我的電腦’>屬性>高級系統設置>環境變量,可以看到已經有了CUDA_PATH、CUDA_PATH_V10_1、NVCUDASAMPLES_ROOT、NVCUDASAMPLES10_1_ROOT這幾個環境變量。
還需要額外添加如下環境變量:
CUDA_SDK_PATH:C:ProgramDataNVIDIA CorporationCUDA Samplesv10.1 CUDA_LIB_PATH:%CUDA_PATH%libx64 CUDA_BIN_PATH:%CUDA_PATH%bin CUDA_SDK_BIN_PATH:%CUDA_SDK_PATH%binwin64 CUDA_SDK_LIB_PATH:%CUDA_SDK_PATH%commonlibx64以及在系統變量PATH下添加:
%CUDA_LIB_PATH% %CUDA_BIN_PATH% %CUDA_SDK_LIB_PATH% %CUDA_SDK_BIN_PATH%; C:ProgramFilesNVIDIA GPU Computing ToolkitCUDAv10.1libx64 C:ProgramFilesNVIDIA GPU Computing ToolkitCUDAv10.1bin C:ProgramDataNVIDIACorporationCUDA Samplesv10.1commonlibx64 C:ProgramDataNVIDIACorporationCUDA Samplesv10.1binwin64配置完成后,我們可以使用CUDA內置的兩個程序來檢驗是否配置生效。啟動cmd,cd到安裝目錄下...CUDAv10.1extrasdemo_suite,分別執行bandwidthTest.exe和deviceQuery.exe,若如圖均返回PASS則說明配置生效。
2.創建虛擬環境
虛擬環境可以理解為針對特定的項目而存在的獨立開發運行環境,不同的虛擬環境可以有自己不同的依賴項與工具包,互不影響,同一個工具包在不同的虛擬環境中根據項目需要可以存在不同的版本。
使用'conda create –n 虛擬環境名 python=版本號 anaconda'(若命令末端不輸入anaconda則環境中只安裝python,無其他工具包),稍等片刻后詢問是否繼續,鍵入Y并回車,出現'done'則表示創建完成。可用'conda activate 虛擬環境名'來激活(退出環境則用deactivate),若想刪除環境則使用'conda remove-n 虛擬環境名--all'。
使用'conda info –envs'可查看當前所有的虛擬環境及其位置。
3.安裝TensorFlow_GPU版
由于Keras以tensorflow(Google開發的一種深度學習框架)作為后端運算,因此本質上是需要GPU來執行tensorflow的計算操作,對此tensorflow有專門基于GPU的版本。激活待安裝的虛擬環境,使用'pip install --upgrade tensorflow-gpu'進行下載與安裝。
途中可能出現依賴項版本過低的情況,請使用'pip install –upgrade 工具包名稱' 逐個升級。
安裝完后,鍵入以下命令并運行:
import tensorflow as tf hello=tf.constant('hello!') sess=tf.Session() print(sess.run(hello))若能成功運行且出現顯卡設備信息則表示實現了GPU調用。
最后Keras的安裝就很簡單了,直接'pip install keras'。
好了,一切準確就緒,快試著讓模型飛起來吧!
Ref:
?https://www.nvidia.cn/
?https://blog.csdn.net/qilixuening/article/details/77503631
總結
以上是生活随笔為你收集整理的cuda 实现sift gpu_为Keras提供GPU加速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光学字符识别 android,基于And
- 下一篇: sa是什么岗位_服务顾问SA在维修企业扮