語義分割學習系列(十)caffe segnet的cudnn版本編譯

前言

系列(九)提到的caffe segnet(https://github.com/alexgkendall/caffe-segnet)所基於的cudnn版本很舊,爲2.0。但是Alex推薦另外一個開源項目(https://github.com/TimoSaemann/caffe-segnet-cudnn5),它的cudnn版本爲5.1。這裏就介紹後面這個項目如何在一個較新的ubuntu平臺上且cudnn enable情況下編譯安裝成功。

編譯

本人平臺及cuda,cudnn版本情況如右所示:ubuntu18.0.4  CUDA9.1  CUDNN7.0.1。

1)enable cudnn

vi Makefile.config and uncomment the below line

USE_CUDNN := 1

2) 然後make clean and make all -j8 這時會遇到下面的編譯錯誤 

cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor

3)分析,還是cudnn版本不兼容的問題。 畢竟我的版本要比cudnn5.1新不少。 網上有很多說是安裝cudnn5.1版本,個人覺得比較麻煩。於是採用下面升級cudnn源代碼的辦法。 即將另外一個已經在本人平臺編譯通過caffe裏面cudnn代碼全部拷到caffe-segnet相對應的目錄下。

scp [email protected]:/xxx/caffe/include/caffe/util/cudnn.hpp xx/caffe-segnet-cudnn5/include/caffe/util/cudnn.hpp
scp [email protected]:/xxx/caffe/src/caffe/util/cudnn.cpp xx/caffe-segnet-cudnn5/src/caffe/util/cudnn.cpp
scp [email protected]:/xxx/caffe/src/caffe/layers/cudnn* xx/caffe-segnet-cudnn5/src/caffe/layers/

4)這時 再make clean and make all -j8 以及 make pycaffe -j8就能成功編譯通過。 當然如果遇到其它caffe的問題,可以參考上一篇文章(系列九) 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章