1. 程式人生 > >【Caffe】Matlab介面(make編譯通過,make mattest出錯)

【Caffe】Matlab介面(make編譯通過,make mattest出錯)

之前一直在用pycaffe,很少接觸MatCaffe,然而幾個論文上的demo需要用到Matcaffe,最近在編譯的時候,出現不少錯誤,記錄一下。

環境配置:Ubuntu16.04 + TitanX + Cuda7.5 + Cudnn V4

錯誤如下:

# make mattest
cd matlab; /usr/local/MATLAB/R2015b/bin/matlab -nodisplay -r 'caffe.run_tests(), exit()'

< M A T L A B (R) >
Copyright 1984-2015 The MathWorks, Inc.
R2015b (8.6
.0.267246) 64-bit (glnxa64) August 20, 2015 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit www.mathworks.com. Invalid MEX-file '/usr/local/caffe/matlab/+caffe/private/caffe_.mexa64': /usr/local/caffe/matlab/+caffe/private/caffe_.mexa64: missing symbol: 中間一堆省略,反正是.mexa64各種missing symbol Error
in caffe.set_mode_cpu (line 5) caffe_('set_mode_cpu'); Error in caffe.run_tests (line 6) caffe.set_mode_cpu();

經我各種搜尋,應該是Matlab的連結庫和編譯出來的.mexa64有衝突。

exit() #結束之前的錯誤
在當前的終端環境下輸入:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-7.5/lib64 
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv
_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6

然後再次make mattest即可

但每次編譯都需要輸入,一個好的辦法就是寫入到~/.bashrc檔案中,然後記得source ~/.bashrc以使得立即生效