caffe編譯問題匯總

1乞巧、 nvcc fatal : Unsupported gpu architecture 'compute_20'

Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/bnll_layer.o' failed
make: *** [.build_release/cuda/src/caffe/layers/bnll_layer.o] Error 1

caffe 編譯時(shí)出現(xiàn)nvcc fatal : Unsupported gpu architecture 'compute_20'当犯,原因是Makefile.config中CUDA_ARCH的配置問題珊肃,更改Makefile.config, 將 compute_20 所在的兩行注釋掉重新編譯即可蜂怎。

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
                #-gencode arch=compute_20,code=sm_21 \
                -gencode arch=compute_30,code=sm_30 \
                -gencode arch=compute_35,code=sm_35 \
                -gencode arch=compute_50,code=sm_50 \
                -gencode arch=compute_52,code=sm_52 \
                -gencode arch=compute_60,code=sm_60 \
                -gencode arch=compute_61,code=sm_61 \
                -gencode arch=compute_61,code=compute_61

2倦西、protobuf版本問題

caffe編譯報(bào)錯(cuò):fatal error: google/protobuf/port_def.inc: No such file or directory
原因是protobuf版本問題倍宾。由于我安裝了anaconda耳标,anaconda安裝了更高版本的protobuf:protobuf.3.11醇坝,而在編譯時(shí)makefile文件調(diào)用的是anaconda下的protobuf,而不是系統(tǒng)下的protobuf2.6次坡。以前遇到protobuf問題時(shí)呼猪,在編譯時(shí)有問題則下載conda下的protobuf,但在caffe使用過程中有時(shí)候又需要protobuf.3砸琅,則又安裝protobuf.3宋距,麻煩也很亂。其實(shí)可以直接修改Makefile文件即可症脂,在編譯時(shí)調(diào)用系統(tǒng)的protobuf2.6版本谚赎,后續(xù)有需要?jiǎng)t使用anaconda的protobuf.3淫僻。
修改Makefile:
修改以下兩行,使其調(diào)用系統(tǒng)的protobuf壶唤,這里筆者的系統(tǒng)protobuf路徑為/usr/lib/protoc
$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)protoc --proto_path=src --python_out=python $<

$(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_BUILD_DIR)/%.pb.h : \
        $(PROTO_SRC_DIR)/%.proto | $(PROTO_BUILD_DIR)
    @ echo PROTOC $<
    #$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
    $(Q)/usr/lib/protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<

$(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \
        $(PY_PROTO_INIT) | $(PY_PROTO_BUILD_DIR)
    @ echo PROTOC \(python\) $<
    #$(Q)protoc --proto_path=src --python_out=python $<
    $(Q)/usr/lib/protoc --proto_path=src --python_out=python $<

注:我們?cè)谟行枰臅r(shí)候例如對(duì)caffe添加自定義層嘁傀,可能會(huì)修改caffe目錄下 src/caffe/proto/caffe.proto文件,修改后需要重新對(duì)此文件編譯视粮,命令為:

cd src/caffe/proto
protoc -I=./ --cpp_out=./ ./caffe.proto

在編譯時(shí)提示類似 a newer version protobuf... 的錯(cuò)誤(具體提示記不清了)也是由于編譯時(shí)用的版本3的protobuf细办,更換2.6的protobuf編譯即可此文件即可。

3蕾殴、freetype問題笑撞,/usr/lib64/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var

大概是anaconda安裝時(shí)覆蓋了freetype包,導(dǎo)致庫(kù)鏈接改變钓觉,其他包找不到此函數(shù)茴肥。筆者不想卸載相關(guān)包和重新編譯freetype,因此在找到anaconda下相關(guān)的庫(kù)文件(libfreetype.so荡灾、libfreetype.so.6)瓤狐,將其刪除即可,以防萬一批幌,可以備份一下础锐。

cd xxx/anaconda3/lib
mv libfreetype.so libfreetype.so_bk
mv libfreetype.so.6 libfreetype.so.6_bk


編譯完caffe ,使用時(shí)(import caffe)報(bào)錯(cuò)

4荧缘、ImportError: No module named skimage.ioimport caffe.io

File "caffe/io.py", line 2, in <module>
import skimage.io
ImportError: No module named skimage.io
安裝工具包
conda install scikit-skimage

5皆警、No module named google.protobuf.internal

安裝protobuf,
conda install protobuf

6截粗、ImportError: dynamic module does not define module export function (PyInit__caffe)

原因是使用了python3調(diào)用caffe信姓,caffe對(duì)python3支持不好,切換python2.7使用caffe

7绸罗、/usr/bin/ld: cannot find -lxxx

編譯過程中找不到庫(kù)文件意推。-lxxx表示鏈接庫(kù)文件libxxx.so
可能為:系統(tǒng)缺少對(duì)應(yīng)的庫(kù)文件,或者版本不對(duì)珊蟀,也或者庫(kù)文件鏈接錯(cuò)誤或者路徑不對(duì)
如果是前兩種情況菊值,可通過apt-get進(jìn)行安裝:apt-get install libxxx-dev。
如果存在相應(yīng)的庫(kù)文件且版本正確系洛,則使用locate指令定位鏈接文件俊性,并設(shè)置正確的鏈接路徑
example:

  1. /usr/bin/ld: cannot fine -lxtst 則 apt-get install libxtst-dev
  2. /usr/bin/ld: cannot lcaffe
    在系統(tǒng)中查找該文件,命令為locate libcaffe
    若可以查找到描扯,則新建軟連接使其可以鏈接到libcaffe.so

8定页、fatal error: numpy/arratobject.h: No such file or directory

一般都裝的有numpy,大概率是路徑不對(duì)

import numpy as np
np.get_include()

/usr/local/lib/python2.7/dist-packages/numpy/core/include
而makefile.config里PYTHON_INCLUDE:= /usr/include/python2.7
/usr/lib/python2.7/dist-packages/numpy/core/include
果然路徑不對(duì),修改為正確路徑

9绽诚、cudnn.hpp:127:41: error:too few arguments to functino 'cudnnStatus_t cudnnSetPooling2dDe

這是因?yàn)楫?dāng)前版本的caffe的cudnn實(shí)現(xiàn)與系統(tǒng)所安裝的cudnn的版本不一致引起的典徊。
解決辦法:
1.將./include/caffe/util/cudnn.hpp 換成最新版的caffe里的cudnn的實(shí)現(xiàn)杭煎,即相應(yīng)的cudnn.hpp.

  1. 將./include/caffe/layers里的,所有以cudnn開頭的文件卒落,例如cudnn_conv_layer.hpp羡铲。 都替換成最新版的caffe里的相應(yīng)的同名文件。
    3.將./src/caffe/layer里的儡毕,所有以cudnn開頭的文件也切,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp腰湾,cudnn_sigmoid_layer.cu雷恃。
    都替換成最新版的caffe里的相應(yīng)的同名文件。

10费坊、fatal error 缺少各種頭文件倒槐,安裝對(duì)應(yīng)的庫(kù)

fatal error:cblas.h: No such file or directory
apt-get install libopenblas-dev
fatal error: 'lmdb' file not found
apt-get install liblmdb-dev

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市附井,隨后出現(xiàn)的幾起案子讨越,更是在濱河造成了極大的恐慌,老刑警劉巖永毅,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件把跨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡卷雕,警方通過查閱死者的電腦和手機(jī)节猿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漫雕,“玉大人,你說我怎么就攤上這事峰鄙〗洌” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵吟榴,是天一觀的道長(zhǎng)魁蒜。 經(jīng)常有香客問我,道長(zhǎng)吩翻,這世上最難降的妖魔是什么兜看? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮狭瞎,結(jié)果婚禮上细移,老公的妹妹穿的比我還像新娘。我一直安慰自己熊锭,他們只是感情好弧轧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布雪侥。 她就那樣靜靜地躺著,像睡著了一般精绎。 火紅的嫁衣襯著肌膚如雪速缨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天代乃,我揣著相機(jī)與錄音旬牲,去河邊找鬼。 笑死搁吓,一個(gè)胖子當(dāng)著我的面吹牛原茅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎浴,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼员咽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了贮预?” 一聲冷哼從身側(cè)響起贝室,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仿吞,沒想到半個(gè)月后滑频,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唤冈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年峡迷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片你虹。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绘搞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出傅物,到底是詐尸還是另有隱情夯辖,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布董饰,位于F島的核電站蒿褂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏卒暂。R本人自食惡果不足惜啄栓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望也祠。 院中可真熱鬧昙楚,春花似錦、人聲如沸齿坷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至崎场,卻和暖如春佩耳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谭跨。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工干厚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人螃宙。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓蛮瞄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谆扎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挂捅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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