SSD(based on Caffe)环境配置
??之前在自己的筆記本上配置過caffe,實在是費了老勁。仍記得無數次呆呆的坐在電腦前,讀著terminal中的報錯信息,各種百度各種谷歌,一點一點的配置環境實在是太痛苦了。不過好在之前跌跌撞撞的配置成功了,可以干活了。然而最近悲催的發現,原來筆記本上的顯卡內存太小,運行SSD的demo會內存爆炸,所以沒法再撐下去了。去年夏天在宿舍配了一套臺式機,本來想著用來打游戲的(裝了GTX1060的卡),現在形勢所迫,只能先用這臺游戲機來干活了。擺在眼前的一件痛苦的事就是,所有的環境都要重新配置一遍,雖說之前鼓搗過一回,但是其實早就忘了,這次又要重新來過,將來單位里上了新的機器,肯定避免不了還要再配置環境。于是決定把配置過程記錄下來,一來可以用做將來配置環境的依據,二來也可以給其他朋友一些參考。
??交代一下機器的情況。Ubuntu14.04系統,顯卡只有一個是GTX1060的卡,64位系統。配置目標:github上copy下來weiliu89大神的SSD代碼能夠跑通demo。
#一、Opencv
??用caffe的話基本都要裝好opencv,而且根據我的經驗,先裝opencv,然后在編譯caffe更穩,之前曾經先編譯了caffe然后再裝opencv,出過毛病,后來又翻過頭來重弄的,這次長記性了。
??opencv我用的是源碼安裝,源碼我傳到百度云了,http://pan.baidu.com/s/1i4PfksH。需要注意的是這是opencv3,caffe編譯的時候不能有opencv2和opencv3同時存在,而ubuntu14.04好像默認安裝了opencv2,所以裝opencv3之前先把opencv2給卸載掉。在terminal中運行即可卸載:
然后開始裝opencv3
先裝第三方環境
假設文件下載并解壓到HOME目錄,然后編譯opencv。cmake過程要開著vpn,因為中間會下載一些墻外的包。
cd opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local .. make sudo make install然后再把連接庫的路徑添加一下,把/usr/local/lib的路徑加到/etc/ld.so.conf中,opencv就裝好了。
#二、CUDA8.0
??用的是nvidia的卡,必須得裝cuda,最新的cuda是8.0版本的。要根據自己的gpu型號去下載相應版本的cuda,cuda 的安裝方式主要有deb、runfile兩種,之前deb裝跪過一次,所以選runfile。可以去nvidia的官網上下載cuda8.0的runfile安裝文件。下完了chmod一下文件的屬性,改成可執行文件。然后開始裝cuda。
1、禁用掉ubuntu的nouveau,這玩意會和nvidia的卡沖突,先把它干掉,新建文件/etc/modprobe.d/blacklist-nouveau.conf
2、重新生成kernel initramfs
sudo update-initramfs -u3、重啟系統,然后Ctrl+Alt+F1進入命令行模式,登錄后,執行:
sudo service lightdm stop(關掉桌面服務)4、下面這一步非常重要!一定要注意!!不注意的話就等著eat shit了!!
要先看好自己的電腦顯卡情況,主要分兩種。
(1)只有一塊獨立顯卡(nvidia 的卡,也就是你將來要用做并行計算的gpu),少部分筆記本和大部分臺式機都是這樣的硬件配置。直接執行:
然后進去安裝,按照安裝向導各種accept、yes就行了。
裝完了重啟桌面服務就可以登錄圖形界面了。
(2)獨立顯卡(nvidia 的卡,也就是你將來要用做并行計算的gpu)+集成顯卡,現在一般的筆記本都是這種情況,這樣的顯卡配置,在ubuntu系統中一般是集成顯卡用作顯示(如果你沒特別設置過顯卡,那么裝了ubuntu系統就是集成顯卡做顯示),裝cuda時要加一條命令(–no-opengl-libs),沒有這條命令,cuda安裝時會覆蓋原來集成顯卡的opengllibs,導致你卡在圖形界面的用戶名密碼登錄環節,循環登錄永遠進不了系統,執行:
sudo ./cuda_8.0.44_linux_ubuntu_14.04.run --no-opengl-libs然后進去安裝,按照安裝向導各種accept、yes就行了。
裝完了重啟桌面服務就可以登錄圖形界面了。
不管是第(1)種情況還是第(2)中情況,成功裝完了cuda還要設置一下cuda和cuda庫文件的路徑。這部分參考cuda安裝過程的最后一步,在cuda安裝成功還沒有退出命令行模式的時候,有這么兩句話:
Please make sure that
-PATH includes /usr/local/cuda-8.0/bin
-LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64,按照這兩個要求設置路徑就完事了。cuda裝好了。
#三、cuDnn庫
??cuDnn庫是nvidia開發的專門優化深度學習函數的庫,不管用什么深度學習框架這個庫都要裝,不裝代碼得不到并行優化,計算會很慢。這個庫裝起來比較簡單,最新的是cuDnn v5,去nvidia官網下載解壓,里面有倆文件夾,一個是include文件夾,一個是lib文件夾。把include文件夾里的東西copy到/usr/local/cuda/include(也就是你的cuda安裝路徑里的include文件夾),把lib文件夾里的東西copy到/usr/local/cuda/lib64(也就是你的cuda安裝路徑里的lib64文件夾)。然后還沒完,還要創建軟連接。
然后cuDnn就裝好了。
#四、下載并編譯caffe-ssd
??終于可以開始編譯caffe了。首先先膜一些weiliu89大神,感謝他們的創作的ssd方法,造福人類,解救我于水火之中。
(1)、去git上下載ssd源碼,地址:https://github.com/weiliu89/caffe/tree/ssd,參考github上的installation就可以將代碼copy到本地。
(2)、升級gcc、g++編譯工具。ssd的編譯需要gcc和g++編譯工具升級到v5,所以先升級。這里提供一種升級方法,要翻墻。
安裝好了gcc-5和g+±5后,再去刪除舊的可執行程序,并換成v5的可執行程序。
cd /usr/bin sudo rm -rf g++ gcc sudo ln -s g++-5 g++ sudo ln -s gcc-5 gcc(3)按照caffe的官方tutorial,先配置環境,具體參考:
http://caffe.berkeleyvision.org/install_apt.html
(4)編譯caffe(ssd),假設從github上copy下來的caffe放在了主文件夾。
順利的話就大功告成,完成了caffe(ssd)的編譯,你就可以做各種事情了。但是一般來講都不會這么順利,因為編譯的過程中需要一些第三方的庫,這些庫零零散散,而且你的ubuntu系統之前可能因為編程或者干嘛的裝過一些,有的人裝了有的人沒裝,亂起八早所以沒有統一總結,解決的方法是根據報錯的情況,如果讀的懂報錯的代碼就去按照報錯debug,如果讀不懂就干脆把關鍵的報錯信息百度,然后會得到相應的解答。一般都是因為確實各種各樣的庫而報錯。這里我總結了兩個最常見的報錯,也是我新裝了ubuntu系統并且按照上述教程一直裝到現在,編譯之后報的兩個錯誤。
!!!第一個,報錯“No module named google.protobuf.internal blablabla”,意思就是沒找到google.protobuf這個模塊,注意這里說的是python的google.protobuf模塊,跟我們之前裝的protobuf不是一回事(我也不知道為什么python還要單獨用這個模塊,反正weiliu89大神是用到python編譯的),那就裝一下就好了。
!!!第二個,報錯“No module named skimage.io blablabla”意思就是沒找到skimage.io這個模塊,沒找到那就裝。
sudo apt-get install python-skimage我遇到的就這兩個報錯,弄好了之后就OK了~但是以我對caffe這個尿性框架的了解,之后在實際工作的時候,可能還會有別的錯誤,不是說你一開始編譯通過了就一定沒問題了,可能有些問題你在編譯的時候是沒碰到所以沒被發現而已,這樣的錯誤就只能碰到的時候再辦了,caffe就這個德行,第三方的依賴太多,這是它的缺點。
??一篇流水賬完成!第一次寫這么長的博客,寫的不好請見諒,關鍵是把事講清楚了就可以,希望以后不會再在配置環境上耽誤工夫,也希望能夠幫到一些linux、caffe的初學用戶,畢竟對著電腦發呆的日子我也經歷過,那滋味太難受。
總結
以上是生活随笔為你收集整理的SSD(based on Caffe)环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相机校准
- 下一篇: Aprior算法简化算法——FP-Tre