caffe安裝 工欲善其事 Caffe編譯問題記錄

2021-10-11 06:31:25 字數 2466 閱讀 2656

現在caffe用的越來越少了,但是由於如下的兩個原因,還有可能偶爾會被用到:

一些舊模型可能是用caffe生成的,臨時需要用一下;

caffe的原始碼結構寫得非常清晰,而且其編譯鏈結過程據說會很鍛鍊內功。

因此,還會偶爾編譯caffe。現在將遇到的各種坑簡單的記錄下來,並供以後汲取營養。

參見如下的方法即可:

ubuntu16.04 在cuda9.0環境下編譯caffe;

ubuntu18.04配置caffe環境(cudn9.0 + cudnn7 gpu版)&&ubuntu16.04可用

ubuntu16.04 安裝 caffe:

上面這幾個互相參考即可。

一度一直報錯:「/usr/include/c++/5/bits/c++0x_warning.h:32:2:error: #error this file requires compiler and library supportfor the iso c++ 2011 standard. thissupportmust be enabled with the -std=c++11 or -std=gnu++11compileroptions.「一直不知道時什麼原因,後來發現只有在編譯cu檔案的時候財報這個錯誤,發現時是在配置cuda的時候報錯。這是編譯器沒有指定

後來在make runtest 和 make pycaffe的時候也報了類似的錯誤;

在makefile裡面找到如下的內容,並新增上-std=c++11

cxxflags += -pthread -fpic $(common_flags) $(warnings)-std=c++11

nvccflags += -d_force_inlines -ccbin=$(cxx) -xcompiler -fpic $(common_flags)-std=c++11

linkflags += -pthread -fpic $(common_flags) $(warnings)-std=c++11

caffe和pycaffe都編譯成功之後,在pycaffe裡面import caffe始終報如下的錯誤:

[pycaffe] typeerror: __init__() got an unexpected keyword argument 'syntax'

經過檢索,發現是系統的protobuf版本不吻合導致的。

用如下命令檢視檢視系統的protobuf:

protoc --version

檢視哪些路徑安裝了protobuf:

whereis protoc

檢視預設呼叫的是哪乙個:

which protoc

顯示目前版本為3.8.0。而根據如下的帖子, ,基本可以判定,caffe需要的版本為2.6.1,上述錯誤是由於版本不對導致的。解決辦法是必須要將系統中所有的protobuf全部刪除,然後重新裝乙個2.6.1版本。刪除的方法是(

sudo apt-get remove libprotobuf-dev

sudo apt-get remove protobuf-compiler

sudo apt-get remove python-protobuf

sudo rm -rf /usr/local/bin/protoc

sudo rm -rf /usr/bin/protoc

sudo rm -rf /usr/local/include/google

sudo rm -rf /usr/local/include/protobuf*

sudo rm -rf /usr/include/google

sudo rm -rf /usr/include/protobuf*

以下三行慎用!

sudo rm -rf /usr/local/lib/libproto*

sudo rm -rf /usr/lib/libproto*

sudo rm -rf /usr/lib/x86_64-linux-gnu/libproto*

之後就可以重新開始安裝:

$ cd protobuf-2.6.1

$ ./configure

$ make all

$ sudo make install

為了python能夠呼叫,還需要安裝python介面,否則在呼叫pycaffe時,import caffe會報如下錯誤:

importerror: no module named google.protobuf.internal

安裝方法:

在protobuf2.6.1.的路徑下:

cd ./python 

python setup.py build

python setup.py test

python setup.py install

工欲善其事必先利其器

裸機開發流程 1.編寫裸機程式 2.除錯裸機程式 3.生成2進製映像 編譯 鏈結 格式轉換 4.燒寫 執行2進製映像。嵌入式開發模型 交叉開發常用交叉工具 1 交叉編譯器,arm linux gcc 2 交叉鏈結器,arm linux ld 3 交叉轉換器,arm linux readelf 4 交...

工欲善其事,必先利其器

如何做好乙個答辯ppt?最為重要的是,不要照搬網上那些所謂的模板,不要用模板,不要用模板。你覺得模板很酷炫還是很大氣?所謂的模板醜不醜不說,很有可能不適合你要表達的東西,填鴨式的ppt是很糟糕的。去改動別人的ppt模板,來適應自己所要表達的內容,所花費的時間完全夠你做乙個ppt了。另外,報告用ppt...

「工欲善其事 必先利其器」

部落格不夠,日常來湊!haha,真的兩個週都沒有更新過文章了 愧疚 前兩天看到一句話講,只要精神上滿足,身體的疲憊算不上什麼。我好像真的達不到這個境界。為期半個多月的感冒真的讓我變懶散了好多,不過還好,感覺終於可以告一段落了。昨天終於好好的著手去寫趙老師留給我的作業 超怕過期的說 學了一丟丟pyth...