編譯caffe的諸多注意事項


 

1.cudnn版本不匹配

首先第一步,編譯caffe_train-master就遇到了問題:

 

  但是在同樣的環境下(CUDA8.0  +  cudnn-8.0-linux-x64-v6.0)編譯官方的caffe-master 就正常通過了:

 

  很顯然就是cudnn版本的問題了,但是不巧的是NVIDIA官網在維護,無法下載cudnn5;從同學那里拷貝過來的cudnn-8.0-v5.1出現了

    Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal 

最終問題總結為: 最新版的cudnn 與 之前的caffe 版本不匹配!!!!不匹配!!!!不匹配!!!!

所以現在問題就很好解決了:

將caffe_train-master中的以下與cudnn有關的11個文件替換成最新的caffe中對應文件即可:

    /include/caffe/layers/cudnn_tanh_layer.hpp  /src/caffe/layers/cudnn_tanh_layer.cpp  /src/caffe/layers/cudnn_tanh_layer.cu

    /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/util/cudnn.hpp  /src/caffe/util/cudnn.cpp

重新make all -j32 通過!!



 

2.由於terminal未正確重啟導致的異常bug

最近在編譯一個新的工程caffe時,出現了許多之前沒有的莫名bug,但是我重新下了個官方的caffe編譯了下一切正常。於是我開始回憶整個編譯過程中的問題所在:

1)首先需要替換與cudnn相關文件

  但是由於我的粗心,直接make all 后出現error才反應過來,然后添加cudnn后又出現其他的Bug.

  鑒於這種情況,我直接將此caffe-master刪除,重新解壓一個新的再次編譯,可是bug還是跟之前類似。(我的terminal並沒有關閉,而且是界面刪除的caffe-master文件夾,但是terminal中,我並沒有退出這個文件夾,所以即便我刪除了caffe-master,但是在terminal中還是在原先的caffe-master/ 路徑下!!!!!不知道這算不算ubuntu的一個系統Bug,導致我接下來幾個小時的郁悶....)

2)我裝了兩個版本的python,即Python3.6和Python2.7:后者通過source activate py2激活

  這里要說的是caffe一般需要Python2.7來make,至於Python3.6我也嘗試過,但均已失敗告終,若有大佬知道怎么做還望能留言告知。

  所以這里又容易出現一個問題,那就是切換成Python 2.7 來編譯caffe. 

  因為長時間不去編譯新的caffe,所以這個操作很容易被忘了(我就是忘了切換成2.7版本,導致編譯caffe 時不通過)



 3.make Caffe 是必須用sudo make 才行,否則出現 no such file :  google/protobuf/arena.h


初步判斷是由於權限問題,導致路徑搜索不到。那么應該是我配置某個路徑的時候,誤用了sudo。

 

暫時問題還沒解決,記下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM