windows下MatConvNet深度學習框架的搭建
MatConvNet是Matlab下用於機器視覺的一個工具包,主要應用是CNN網路,當然其他的網路也涉及到了。MatConvNet簡潔、高效,可以用於圖片分類、分割和人臉識別等等深度學習的功能。具體的可以參見官網的介紹。
在搭建環境的過程中,發現如今網上對其的資源不太多,所以在這做一個總結。以beta22版本為例。過程分為下面幾個步驟:
1.MatConvNet的下載2.GPU模式的使用
3.測試
1.MatConvNet的下載
在其官網的頁面進行下載,解壓到適當的位置。
執行其中“matconvnet-1.0-beta22\examples\vggfaces”路徑下的cnn_vgg_faces.m檔案,會出現下面的結果,那麼說明已經可以使用了。在執行前最好把其中要下載的一些內容給放到對應的資料夾下,這樣可以節省一點等待的時間。
2.GPU模式的使用
官網的這個頁面中,提到了搭建GPU的方式。
首先,安裝CUDA,在這個頁面有下載。記得下載和自己系統以及顯示卡支援的CUDA。
接下來,要下載cuDNN(Deep Neural Network library)。cuDNN是用於GPU加速的一個庫函式。在這個頁面有下載。
然後把解壓好的cuDNN放在合適的資料夾下,建議在MatConvNet下建立local資料夾,同時把cuDNN資料夾中bin資料夾下的cudnn64_5.dll檔案複製到matconvnet-1.0-beta22\matlab\mex資料夾下。
最後,在MatConvNet資料夾下建立compileGPU.m檔案,其中內容如下。記得把對應的路徑給改成自己電腦中的路徑。
addpath matlab; % % with cudnn vl_compilenn('enableGpu', true, ... 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0', ... % CUDA的安裝路徑 'cudaMethod', 'nvcc', 'enableCudnn', 'true', ... 'cudnnRoot', 'E:\postgraduate\project\Machine Learning\Deep Learning\CNN\matconvnet-1.0-beta22\local\cudnn'); % cuDNN的路徑
出現下面圖片中類似的結果,就代表成功了。
4.測試
還是根據官網的這個頁面,在命令列視窗輸入vl_testnn命令,測試非gpu模式,會出現下面的內容。
接下來測試GPU模式,在命令列視窗輸入vl_testnn('gpu', true),會有類似上面的內容出現。這就是成功了,GPU模式下的速度提示還是很明顯的,一般都會有十倍以上。
到此,MatConvNet的安裝就結束了。
同時,把我在安裝過程中遇到的一個問題的解決方式給寫一下。在安裝cuDNN的時候,可能會遇到如下的錯誤“Error using mex nvcc fatal : Unsupported gpu architecture 'compute_21'”,其中21可以為其他不能被10整除的數字。這個時候可以把matconvnet-1.0-beta22\matlab下的vl_compilenn.m檔案中的732行的程式碼中"%s"改為向下取10的整數倍。
比如,原始碼為
cudaArch = ...
sprintf('-gencode=arch=compute_%s,code=\\\"sm_%s,compute_%s\\\" ', ...
arch_code, arch_code, arch_code) ;
可以改為
cudaArch = ...
sprintf('-gencode=arch=compute_20,code=\\\"sm_20,compute_20\\\" ', ...
arch_code, arch_code, arch_code) ;
這樣,經常遇到的問題就能解決了。