Ubuntu18.04跑faster-rcnn安裝配置

我的配置: Ubuntu 18.04+nvidia 410.78+cuda 10.0+cudnn 7.4.2

  1. 下載 py-faster-rcnn
    git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
  2. 由于用到了caffe框架,所以需要先將caffe依賴的包裝上
sudo apt-get install python-pip
sudo pip install cython  
sudo pip install easydict 
sudo apt-get install python-opencv

還需要裝:

  • boost
    sudo apt-get install libboost-all-dev
  • proto
    sudo apt-get install libprotobuf-dev protobuf-c-compiler protobuf-compiler
  • glog
    sudo apt-get install libgoogle-glog-dev
  • gflags
    sudo apt-get install libgflags-dev
  • lmdb
    sudo apt-get install liblmdb-dev
  • leveldb
    sudo apt-get install libleveldb-dev
  • snappy
    sudo apt-get install libsnappy-dev
  • opencv
    sudo apt-get install libopencv-dev
  • BLAS
    sudo apt-get install libatlas-base-dev
  • hdf5.h頭文件
    sudo apt-get install libhdf5-\*
  1. 編譯caffe-faster-rcnn
  • 編譯Cython模塊
    cd py-faster-rcnn/lib
    make
  • 編譯caffe和pycaffe
    先進入caffe-fast-rcnn目錄下
    cd py-faster-rcnn/caffe-fast-rcnn
    復制Makefile.config.example為Makefile.config
    cp Makefile.config.example Makefile.config
    編輯Makefile.config,對應地方改為如下形式:
USE_CUDNN := 1
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

這時進行編譯還是會出現(xiàn)錯誤亿汞,faster-rcnn默認的caffe支持的cudnn版本是v4,因此編譯caffe會出現(xiàn)版本不兼容而導致的函數(shù)參數(shù)不對應的錯誤模软。這時參考博文https://blog.csdn.net/flygeda/article/details/78638824,下載caffe最新源碼https://github.com/BVLC/caffe

用最新caffe源碼的以下文件替換掉caffe-fast-rcnn中的對應文件:
include/caffe/layers/cudnn_relu_layer.hpp
src/caffe/layers/cudnn_relu_layer.cpp
src/caffe/layers/cudnn_relu_layer.cu
include/caffe/layers/cudnn_sigmoid_layer.hpp
src/caffe/layers/cudnn_sigmoid_layer.cpp
src/caffe/layers/cudnn_sigmoid_layer.cu
include/caffe/layers/cudnn_tanh_layer.hpp
src/caffe/layers/cudnn_tanh_layer.cpp
src/caffe/layers/cudnn_tanh_layer.cu

include/caffe/util/cudnn.hpp

將caffe-fast-rcnn中的src/caffe/layers/cudnn_conv_layer.cu 文件中所有的
cudnnConvolutionBackwardData_v3 函數(shù)名替換為 cudnnConvolutionBackwardData
cudnnConvolutionBackwardFilter_v3函數(shù)名替換為 cudnnConvolutionBackwardFilter

然后進行編譯:

cd py-faster-rcnn/caffe-fast-rcnn
make -j8 && make pycaffe

這時編譯又遇到一個錯誤nvcc fatal : Unsupported gpu architecture 'compute_20'饮潦,這時需要將Makefile.config中CUDA_ARCH配置去掉
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
然后編譯完成燃异。

  1. 獲取faster-rcnn模型
    cd py-faster-rcnn
    ./data/scripts/fetch_faster_rcnn_models.sh
    服務器沒法翻墻,所以我先在本地下載后傳到服務器的py-faster-rcnn/data目錄下继蜡,下載URL位于fetch_faster_rcnn_models.sh中特铝。
    然后進行解壓:tar -xvf faster_rcnn_models.tgz

  2. 運行demo
    cd py-faster-rcnn
    sudo ./tools/demo.py

  • 報錯:ImportError: No module named skimage.io
    解決:sudo apt-get install python-skimage
  • 報錯:ImportError: No module named google.protobuf.internal
    解決:pip install protobuf
  • 報錯:
Cannot create Cublas handle. Cublas won't be available
...中間省略幾十行
Check failed: status == CUDNN_STATUS_SUCCESS (1 VS. 0) CUDNN_STATUS_NOT_INITIALIZED

電腦之前安裝了cuda10.1,這個版本是不適合我的顯卡驅(qū)動410.78的壹瘟,一直沒刪,在此將其卸載鳄逾,只保留cuda10.0稻轨。到/usr/local/cuda-10.1/bin目錄下執(zhí)行./cuda_uninstaller

  • 報錯:
...
in <module>
    from nms.gpu_nms import gpu_nms
ImportError: libcudart.so.10.1: cannot open shared object file: No such file or directory

這是由于我之前用cuda10.1編譯過,而換成cuda10.0進行編譯后部分文件并沒有進行重新編譯雕凹,依然依賴cuda10.1殴俱。所以需要將/py-faster-rcnn/lib/下文件夾中所有的*.so文件刪除,之后再重新進行make枚抵。
至此demo運行成功:)

  1. 下載在ImageNet上pre-trained的模型參數(shù)(用于初始化網(wǎng)絡(luò)參數(shù))
    cd py-faster-rcnn
    ./data/scripts/fetch_imagenet_models.sh
    下載不下來的話方法同4.

  2. 創(chuàng)建PASCAL VOC數(shù)據(jù)集的符號鏈接线欲,以便可以在多個項目使用該數(shù)據(jù)集,$VOCdevkit為你下載的數(shù)據(jù)集的目錄
    cd py-faster-rcnn/data
    ln -s $VOCdevkit VOCdevkit2007

  3. 用VOC數(shù)據(jù)集進行訓練
    cd py-faster-rcnn
    ./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set...]
    ./experiments/scripts/faster_rcnn_alt_opt.sh 1 ZF pascal_voc
    此時報錯:

File "/home/zd/py-faster-rcnn/tools/../lib/fast_rcnn/train.py", line 51, in __init__
     pb2.text_format.Merge(f.read(), self.solver_param)
AttributeError: 'module' object has no attribute 'text_format'

解決辦法是在py-faster-rcnn/lib/fast_rcnn/train.py中加上一句代碼:
import google.protobuf.text_format
然后開始training...
但是跑了一會兒又報了個錯:

  File "/home/zd/py-faster-rcnn/tools/../lib/roi_data_layer/minibatch.py", line 110, in _sample_rois
fg_inds, size=fg_rois_per_this_image, replace=False
  File "mtrand.pyx", line 1176, in mtrand.RandomState.choice (numpy/random/mtrand/mtrand.c:18822)
TypeError: 'numpy.float64' object cannot be interpreted as an index

于是重裝numpy1.11.0版本sudo pip install -U numpy==1.11.0
但是會出現(xiàn)新的錯誤ImportError: numpy.core.multiarray failed to import
于是參考https://github.com/rbgirshick/py-faster-rcnn/issues/626 修改py-faster-rcnn/lib/roi_data_layer/minibatch.py文件中的line55 line98 line110 line124 line175汽摹,并且將numpy版本升級到1.13.1sudo pip install -U numpy==1.13.1

參考文章:
[1] Kali新手喝咖啡(Caffe)的艱辛之路
[2] Caffe-GPU編譯問題:nvcc fatal:Unsupported gpu architecture 'compute_20'
[3] Ubuntu16.04 faster-rcnn+caffe+gpu運行環(huán)境配置以及解決各種bug
[4] caffe學習(四):py-faster-rcnn配置李丰,運行測試程序(Ubuntu)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逼泣,隨后出現(xiàn)的幾起案子趴泌,更是在濱河造成了極大的恐慌,老刑警劉巖拉庶,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗜憔,死亡現(xiàn)場離奇詭異,居然都是意外死亡氏仗,警方通過查閱死者的電腦和手機吉捶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呐舔,你說我怎么就攤上這事币励。” “怎么了滋早?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵榄审,是天一觀的道長。 經(jīng)常有香客問我杆麸,道長搁进,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任昔头,我火速辦了婚禮饼问,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘揭斧。我一直安慰自己莱革,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布讹开。 她就那樣靜靜地躺著盅视,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旦万。 梳的紋絲不亂的頭發(fā)上闹击,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音成艘,去河邊找鬼赏半。 笑死,一個胖子當著我的面吹牛淆两,可吹牛的內(nèi)容都是我干的断箫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼秋冰,長吁一口氣:“原來是場噩夢啊……” “哼仲义!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剑勾,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤光坝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后甥材,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盯另,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年洲赵,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸳惯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片商蕴。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芝发,靈堂內(nèi)的尸體忽然破棺而出绪商,到底是詐尸還是另有隱情,我是刑警寧澤辅鲸,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布格郁,位于F島的核電站,受9級特大地震影響独悴,放射性物質(zhì)發(fā)生泄漏例书。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一刻炒、第九天 我趴在偏房一處隱蔽的房頂上張望决采。 院中可真熱鬧,春花似錦坟奥、人聲如沸树瞭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晒喷。三九已至,卻和暖如春访敌,著一層夾襖步出監(jiān)牢的瞬間凉敲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工捐顷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雨效。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓迅涮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親徽龟。 傳聞我的和親對象是個殘疾皇子叮姑,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容