編譯caffe遇到的問題彙總

2021-07-14 13:29:25 字數 3649 閱讀 3524

解壓之後,執行如下命令:

$ sudo cp include/cudnn.h /usr/local/include

$ sudo cp lib64/libcudnn.* /usr/local

/lib

鏈結庫檔案:
$ sudo ln -sf /usr/local/lib/libcudnn.so.7

.0.64 /usr/local/lib/libcudnn.so.7

.0

$ sudo ln -sf /usr/local/lib/libcudnn.so.7

.0 /usr/local/lib/libcudnn.so

$ sudo ldconfig -v

在caffe的makefile.config中開啟cudnn即可。

k80來了一周了,為了大面積實驗,再次安裝caffe。好在現在可以在幾小時內安裝完成。想想去年這個時候,花了一周多時間搭建環境,還真是有毅力:)

突然在編譯caffe到最後一步時,出現了core dumped。但是runtest的所有測試均已通過,汗!報錯如下:

我自己也是挺鬱悶的。

最終google之後,發現問題的原因是:

由於上次使用了乙個節省視訊記憶體的方法,所以參見#2016 修改了檔案,引起了這乙個現象。

但後期的測試以及實驗,並未發現大的問題。如有問題,再做記錄。

在編譯caffe最後一步:make runtest -j40時,會出現如下錯誤:

.build_release/tools/caffe

.build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `glibcxx_3.4

.15' not found (required by /home/anothergjy/desktop/caffe-master-matlab-python-gpu02-251/

.build_release/tools/../lib/libcaffe.so)

.build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `glibcxx_3.4

.15' not found (required by /usr/local/lib/libopencv_highgui.so.2

.4)make: *** [runtest] error 1

原因是版本太低。需要更高的版本。關於版本的檢視可以用下面的命令:

$

strings

libstdc++

.so.6

.0.18|

strings

/usr/lib64/libstdc++

.so.6|grep

glibcxx

這裡已經安裝好了gcc-4.8.2,因此需要修改軟連線即可。

需要連線的檔案存在於gcc-build-4.8.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18下面。但需要注意的是src目錄下的.lib資料夾是隱藏的,需要使用root許可權才可以看到,將其複製到/usr/lib64/下。

接下來,就是要修改連線,讓原本的libstdc++.so.6指向ibstdc++.so.6.0.18。

# cd /usr/lib64

# rm -r libstdc++.so.6

rm: remove symbolic link `libstdc++.so.6'? y

# ln -s libstdc++.so.6.0.18 libstdc++.so.6

再次檢視版本結果如下:

#

strings

libstdc++

.so.6

.0.18|

strings

/usr/lib64/libstdc++

.so.6|grep

glibcxx

glibcxx_3.4

glibcxx_3.4

.1glibcxx_3.4

.2glibcxx_3.4

.3glibcxx_3.4

.4glibcxx_3.4

.5glibcxx_3.4

.6glibcxx_3.4

.7glibcxx_3.4

.8glibcxx_3.4

.9glibcxx_3.4

.10glibcxx_3.4

.11glibcxx_3.4

.12glibcxx_3.4

.13glibcxx_3.4

.14glibcxx_3.4

.15glibcxx_3.4

.16glibcxx_3.4

.17glibcxx_3.4

.18glibcxx_3.4

.19glibcxx_force_new

glibcxx_debug_message_length

可以看到最新版本已經到了3.4.19。

由於最新版的caffe支援多卡,因此,在編譯過程中,如果檢測到機器是多卡,便會在runtest階段出現報錯:

對於這樣的問題,只需要加入一行**,export cuda_visible_devices=0

這樣以來,runtest就可以順利通過了。

cudnn是專門針對deep learning框架設計的一套gpu計算加速方案,目前支援的dl庫包括caffe,convnet, torch7等。

$ tar -xzvf cudnn-6.5-linux-r1.tgz

$ cd cudnn-6.5-linux-r1

$ sudo cp lib* /usr/local

/cuda/lib64/

$ sudo cp cudnn.h /usr/local/cuda/include/

執行後發現還是找不到庫, 報錯

error while loading shared libraries: libcudnn.so.6.5: cannot open shared object file: no such file or directory,而lib資料夾是在系統路徑裡的,用ls -al發現是檔案許可權的問題,因此用下述命令先刪除軟連線

$ cd /usr/local/cuda/lib64/

$ sudo rm -rf libcudnn.so libcudnn.so.6.5

然後修改檔案許可權,並建立新的軟連線

$ sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18 

$ sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6.5

$ sudo ln -s libcudnn.so.6.5 libcudnn.so

caffe編譯問題彙總

每次編譯caffe出現的問題基本都不一樣,在不同的系統和硬體平台上都會出現不一樣的問題,這裡就把每次編譯出現的問題總結一下。一看就知道是opencv庫出現問題,這裡是缺少了opencv imgcodecs庫,在makefile檔案中的 libraries opencv core opencv hig...

編譯caffe遇到的問題及解決

編譯caffe需要安裝的東西 install libatlas base dev sudo apt get install libgflags dev libgoogle glog dev liblmdb dev protobuf compiler編譯時找不到庫所在的路徑 解決 修改caffe下ma...

編譯核心遇到的問題彙總

ubutnu12.04編譯android4.2 error while loading shared libraries libz.so.1 ubutnu12.04編譯android4.2 error while loading shared libraries libz.so.1 cannot o...