caffe常错问题及解决方案

1.bash: ./examples/mnist/test_lenet.sh: 权限不够
解决办法:
(caffe没有执行权限,所以下一行先加权限)
chmod +x ./examples/mnist/test_lenet.sh
./examples/mnist/test_lenet.sh

2.提示 make: 没有什么可以做的为 `all’。
解决办法:
make clean 一次,编译过程又有了。

3../build/tools/caffe: error while loading shared libraries: libhdf5_hl.so.10: cannot open shared object
解决办法:
将 anaconda lib 的路径添加到环境变量 LD_LIBRARY_PATH中,具体命令为:
①export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{anaconda_dir}/lib
②source ~/.bashrc

4.ubuntu16.04环境下编译caffe出现./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: 没有那个文件或目录
解决方法:
修改Makefile.config需要修改的内容:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

5.>>>import caffe
Traceback (most recent call last):
File “”, line 1, in
ImportError: No module named caffe
解决方案:
A.把环境变量路径放到 ~/.bashrc文件中
sudo echo export PYTHONPATH=”~/caffe/python” >> ~/.bashrc
B.使环境变量生效
source ~/.bashrc

6.如何在终端直接调用matlab
解决方法:
sudo ln -s /usr/local/MATLAB/R2016b/bin/matlab /usr/local/bin/matlab

7.MEX-file ‘caffe/matlab/+caffe/private/caffe_.mexa64’ 无效:
caffe/matlab/+caffe/private/caffe_.mexa64: undefined
symbol: _ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEERKSB_IiSaIiEE。
出错 caffe.set_mode_cpu (line 5)
caffe_(‘set_mode_cpu’);
出错 caffe.run_tests (line 6)
caffe.set_mode_cpu();
解决方法:
注意到其中的symbol_ZN2cv8imencodeERKNSt7_,可以看出错误是和方法imencoder相关的,而这个方法来自OpenCV库。
Caffe在编译的时候需要指定OpenCV的版本和位置,这个时候Caffe的库是链接到系统安装的OpenCV库的;使用make matcaffe命令编译Caffe的MATLAB接口的时候却是链接到MATLAB自带的OpenCV库。
解决办法是首先将MATLAB自带的OpenCV中的三个软符号链接文件备份,其次删除这三个软符号链接文件,再次重新建立这三个软符号链接文件:

libopencv_core.so.2.4 -> /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9
libopencv_highgui.so.2.4 -> /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9
libopencv_imgproc.so.2.4 -> /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9

8.Invalid MEX-file ‘*/caffe/matlab/caffe/caffe_.mexa64’: /usr/local/Matlab/R2013a/sys/os/glnxa64/libstdc++.so.6: undefined symbol:
解决办法:
(1)在linux 命令行窗口中,使用ldd 命令查看 caffe_.mexa64 所依赖的所有库文件的路径,读法结构为 : ldd path,其中path是caafe_.mexa64的完整路径:

ldd /home/user/caffe/matlab/+caffe/private/caffe_.mexa64

(2)在matlab窗口中,使用!ldd命令查看caffe_.mexa64找不到的所依赖的库文件的路径:

!ldd  /home/user/caffe/matlab/+caffe/private/caffe_.mexa64

在本例中,libstdc++.so.0没有被Matlab找到,即2 步骤中会显示它的默认路径“/usr/local/Matlab/R2013a/sys/os/glnxa64/libstdc++.so.6“,而在1步骤中显示了它的真实路径:”/usr/lib/x86_64-Linux-gnu/libstdc++.so.6“
(3)通过以下命令:
sudo rm /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6
将默认路径链接到真实路径下。
(4)重启Matlab,运行即可成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值