環境介紹
- 操作系統:Ubuntu 16.04 x64
- CUDA版本:CUDA Toolkit 8.0 - Feb 2017(文件名:cuda_8.0.61_375.26_linux.run)
- cuDNN版本:cuDNN 5.1(文件名:cudnn-8.0-linux-x64-v5.1.tgz)
- gcc/g++版本:4.9.3
- MatConvNet版本:MatConvNet-1.0-beta24或MatConvNet-1.0-beta25
- MATLAB版本:MATLAB R2017b
注: 就本文應用的範圍而言(運行CFNet目標跟蹤源代碼),無需手工配置環境變量。
安裝CUDA
- 在NVIDIA官方網站上下載CUDA 8.0:
https://developer.nvidia.com/cuda-80-ga2-download-archive
以Ubuntu 16.04操作系統爲例,在下載頁面進行如下選擇
- 下載後,在終端中進入安裝包所在的目錄,並運行
sudo sh cuda_8.0.61_375.26_linux.run
然後根據提示操作(幾乎都可以選y),這樣,CUDA的安裝就完成了。
安裝cuDNN
-
在NVIDIA官方網站上下載cuDNN,具體版本見文章開頭的環境介紹
-
下載後,解壓,在終端中進入到解壓後所在的目錄(假如解壓到downloads目錄裏面,那麼就進入到downloads目錄即可),運行以下三條命令:
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
若有提示依賴缺失,軟件包尚未配置好的,還需要執行命令(個人沒有遇到過,先貼在這裏備用,此處感謝博主逆水行舟)的無私分享:
sudo apt install -f
至此,cuDNN的安裝就完成了。
安裝MatConvNet(Step 1)
- 首先查看系統中當前的gcc/g++版本,運行命令即可看到版本信息:
gcc -v
- 如果版本不是4.9.x,那麼需要安裝gcc/g++ 4.9的版本,運行命令:
sudo apt-get install gcc-4.9 g++-4.9
- 設置優先級。通常情況下,Ubuntu 16.04系統可能會內置更高的gcc/g++版本,這裏需要將剛剛安裝的4.9版本的gcc/g++設爲最高優先級,運行下列命令(這裏假定更高的版本號是5,實際操作時要結合真實的版本號):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
- 修改完優先級後,驗證一下:
update-alternatives --query gcc
update-alternatives --query g++
此處感謝Weiyang同學的無私分享。
安裝MatConvNet(Step 2)
安裝LibJPEG:
sudo apt-get install build-essential libjpeg-turbo8-dev
安裝MatConvNet(Step 3)
- 在這裏下載MatConvNet:http://www.vlfeat.org/matconvnet/download/
- 解壓MatConvNet
- 啓動MATLAB,在MATLAB中進入解壓後的MatConvNet文件夾中的matlab目錄
- 在MATLAB的命令行中分別運行兩條命令:
mex -setup
mex -setup C++
- 針對CPU進行編譯,在MATLAB的命令行中運行:
vl_compilenn
- 針對GPU進行編譯,在MATLAB的命令行中運行(下面命令的最後一個參數是CUDA的安裝路徑,可能需要結合實際修改):
vl_compilenn('enableGpu', true, 'cudaRoot', '/usr/local/cuda')
如果運行上述命令報錯,那麼嘗試運行下面的命令:
vl_compilenn('enableGpu', true, 'cudaMethod', 'nvcc', 'cudaRoot', '/usr/local/cuda')
運行該命令時如果有一些warning,不必理會,只要最後有“mex completed successful”這樣的字樣即可。
- 在MATLAB命令行中,運行:
vl_setupnn
- 在MATLAB命令行中,運行GPU測試:
vl_testnn('gpu', true)
測試結果如下圖所示:
- 在MATLAB命令行中,運行CPU測試:
vl_testnn
測試結果如下圖所示:
這樣,基於Ubuntu的MatConvNet深度學習環境就搭建好了。經過驗證,CFNet跟蹤源代碼可以在這樣的Ubuntu系統上運行。具體操作步驟,可以參考本人另外兩篇文章:
想持續獲得文章推送?歡迎掃碼關注“視覺邊疆”微信訂閱號