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