【Caffe】Matlab介面(make編譯通過,make mattest出錯)
阿新 • • 發佈:2019-01-08
之前一直在用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以使得立即生效