Caffe 编译错误记录
Caffe 編譯錯誤記錄
裝了opencv 3之后,以前可以編譯成功的的caffe總是出現錯誤,現記錄下來,作為備份:
??? 1、build_release/lib/libcaffe.so:對‘cv::imdecode(cv::_InputArray const&, int)’未定義的引用
??? 對于各種cv出錯:
??? 解決方法:
??? 修改Makefile:
??? LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial matio opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
??? 下次編譯之前要 make clean
??? 2、make: /usr/local/bin/mexext:命令未找到
??? sudo ln -s /usr/local/MATLAB/R2016b/bin/mexext /usr/local/bin
警告: 您使用的 gcc 版本為 ‘5.4.0’。不支持該版本的 gcc。MEX 當前支持的版本為 ‘4.9.x’。有關當前支持的編譯器列表,請參閱: http://www.mathworks.com/support/compilers/current_release。
不管它。
??? 3、m//home/yali/anaconda2/lib/libpng16.so.16:對‘inflateValidate@ZLIB_1.2.9’未定義的引用
??? sudo ln -s /home/yali/anaconda2/lib/libpng16.so.16 libpng16.so.16 (方法不行)
??? 正確解決方法:
??? 在 Makefile.config 中,加入下一句
??? LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda/lib
??? 4、python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory
??? 解決方法:沒裝numpy的先安裝
??? sudo apt-get install python-numpy
??? 然后 sudo find / -name numpy,顯示
??? /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy
??? /usr/share/numpy
??? /usr/include/python2.7/numpy
??? /usr/include/numpy
??? /usr/lib/python2.7/dist-packages/Cython/Includes/numpy\
??? 然后對照 Makefile.config
??? 將第二行加一個local
??? PYTHON_INCLUDE := /usr/include/python2.7 \
??? /usr/local/lib/python2.7/dist-packages/numpy/core/includ
??? 5、ImportError: No module named caffe
??? 解決方法1:
??? 首先新建一個py文件,命名為_init_paths.py 里面寫入如下代碼:
import os.path as osp
import sys
def add_path(path):
??? if path not in sys.path:
??????? sys.path.insert(0, path)
this_dir = osp.dirname(__file__)
#Add caffe to PYTHONPATH
caffe_path = osp.join(this_dir, '..', 'caffe', 'python')? #注意路徑:this_dir表示當前路徑,‘..’返回上一層的caffe所在的路徑,根據自己的caffe所在路徑修改
add_path(caffe_path)
??? 1
??? 2
??? 3
??? 4
??? 5
??? 6
??? 7
??? 8
??? 9
??? 10
??? 11
??? 12
每次使用caffe的時候在 import caffe 前面加上 import _init_paths 即可:
import _init_paths # _init_paths.py 和當前命令放在同一路徑下
import caffe
??? 1
??? 2
解決方法2:
caffe_root = '/home/mmt/Desktop/caffe/)' ?
import sys
sys.path.append("/home/mmt/Desktop/caffe/python")
sys.path.append("/home/mmt/Desktop/caffe/python/caffe")
import caffe
??? 1
??? 2
??? 3
??? 4
??? 5
??? 6、編譯Fast -rcnn時的錯誤
./include/caffe/util/cudnn.hpp:124:41: error: too few arguments to function
‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’
解決方法:
1.將./include/caffe/util/cudnn.hpp 換成最新版的caffe里的cudnn的實現,即相應的cudnn.hpp.
2.將./src/caffe/layer里的,所有以cudnn開頭的文件,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp,cudnn_sigmoid_layer.cu。
rbgirshick的py-faster-rcnn實現,因為其cudnn實現為舊版本的實現,所有出現了以上問題.
然后 make clean,再重新編譯
??? 1
??? 2
??? 3
??? 4
src/caffe/layers/cudnn_softmax_layer.cpp:6:48:
fatal error: caffe/layers/cudnn_softmax_layer.hpp: No such file or directory
將新版本caffe中的 incliude里面的layer文件夾移過去 ?
??? 1
??? 7、ImportError: libprotobuf.so.8: cannot open shared object file: No such file
解決方法:http://blog.csdn.net/yl33489/article/details/73605398
http://blog.csdn.net/hailong0715/article/details/52057873
說明你使用的protobuf要么是沒有編譯過,所以找不到對應的庫文件,要么就是您編譯之后的安裝路徑沒有假如到配置中所以報錯。
如果是第一種,請先下載protobuf-2.5.0,我已經上傳到網盤http://pan.baidu.com/s/1pKAgqp1
如果是第二種情況:
則需要創建新文件:/etc/ld.so.conf.d/libprotobuf.conf ,然后在其中加入內容:/usr/local/lib
??? 1
??? 2
??? 3
??? 4
??? 5
??? 6
??? 7
??? 8、TypeError: slice indices must be integers or None or have an _index_ method
??? 說是numpy版本的問題。
解決方法:
sudo pip install -U numpy==1.11.0
?python -c "import numpy; print numpy.__version__"
??? 1
??? 2
??? 3
??? 9、ImportError: numpy.core.multiarray failed to import
重新 make fasterrcnn/lib
??? 1
10、SystemError: NULL result without error in PyObject_Call
解決方法: ?
sudo apt-get install python-yaml
??? 1
??? 2
??? 10、./include/caffe/util/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h: No such file or director
解決方法:
sudo pip install protobuf --upgrade -i http://pypi.douban.com/simple
sudo pip install pillow --upgrade -i http://pypi.douban.com/simple
??? 1
??? 2
??? 3
??? 11、/lib/rpn/proposal_layer.py:175: RuntimeWarning: invalid value encountered in
??? 訓練到8060次發生錯誤
解決方法:
將
1)A possible solution could be to decrease the base learning rate in the solver.prototxt(只能延遲錯誤出現的時間)
As it is recommended here http://caffe.berkeleyvision.org/tutorial/solver.html
Just change the base_lr: 0.001 to 0.0001
2)修改/py-faster-rcnn/lib/datasets/pascal_voc.py第204-207行,修改結果如下:(不頂用)
x1 = float(bbox.find('xmin').text)
y1 = float(bbox.find('ymin').text)
x2 = float(bbox.find('xmax').text)
y2 = float(bbox.find('ymax').text)
3)修改config中的RNG_seed, 只能延緩出現錯誤的時間。
??? 1
??? 2
??? 3
??? 4
??? 5
??? 6
??? 7
??? 8
??? 9
??? 10
??? 11
??? 12
??? 13
??? 12、error Check failed: error == cudaSuccess(77 vs 0) an illegal memory access was encountered
??? 這是我在進行test的時候遇到的,訓練的時候沒有出錯
解決方法:
將
ROIPoolBackward<Dtype><<<CAFFE_GET_BLOCKS(count), 16>>>(numpy.__version__"
中的16該一下行了,修改如下:
ROIPoolBackward<Dtype><<<CAFFE_GET_BLOCKS(count), CAFFE_CUDA_NUM_THREADS>>>
??? 1
??? 2
??? 3
??? 4
??? 5
??? 13、libcudart.so.8.0: cannot open shared object file: No such file or directory
首先打開bashrc文件:gedit ~/.bashrc
在文件末尾加入環境變量,如64-bit:export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
保存文件退出,在終端保存加載設置:soucre ~/.bashrc
或者
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
??? 1
??? 2
??? 3
??? 4
??? 5
??? 6
??? 7
??? 8
??? 14、ImportError: No module named cv2
sudo apt-get install python-opencv
??? 1
??? 2
??? 15、 MATLAB caffe 運行錯誤
??? _ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEERKSB_IiSaIiEE.
??? -先把 /usr/lib/x86_64-linux-gnu 里面的鏈接刪掉或者保存起來
??? sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9 libopencv_core.so.2.4
??? sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9 libopencv_highgui.so.2.4
??? sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9 libopencv_imgproc.so.2.4
??? 16、 MATLAB caffe 運行錯誤
??? Invalid MEX-file ‘/home/yali/Desktop/YALI/faster_rcnn/external/caffe/matlab/+caffe/private/caffe_.mexa64’:
??? /usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by
??? /home/yali/Desktop/YALI/faster_rcnn/external/caffe/matlab/+caffe/private/caffe_.mexa64).
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6 ?
--------------------- ?
作者:ruotianxia ?
來源:CSDN ?
原文:https://blog.csdn.net/ruotianxia/article/details/78437464 ?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的Caffe 编译错误记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Caffe + CUDA8.0 + Cu
- 下一篇: pytorch资料