Caffe 安装时遇到错误汇总

在安装Caffe时遇到各种各样的错误,汇总一下。按照遇到顺序列出来吧。

错误1:编译caffe时出现如下错误,直接上图

原因:缺少依赖项

解决办法:

make clean  #删除编译错误的caffe
sudo apt-get install libatlas-base-dev #安装依赖库,然后重新编译caffe

 

错误3make pycaffe,如果出现“make: Nothing to be done for `pycaffe’.” 

解决办法: 

打开文件

sudo gedit ~/.bashrc

将下面的

$export PYTHONPATH=/home/caffe/python:$PYTHONPATH
//注意:/home/caffe/python这是你的caffe的路径下面的python

添加到文件末尾,完成后记得要

source ~/.bashrc

错误2:同样是执行make pycaffe时,出现下列错误

原因:numpy可能已经是安装的,anaconda2里面有,python中import numpy也没有问题,但就是在此处报错

解决办法:执行下面的命令后重新执行make pycaffe

 sudo apt-get install python-numpy

错误4: src/caffe/common.cpp:1:28: fatal error: boost/thread.hpp: 没有那个文件或目录

如下图

原因:安装依赖库libboost-all-dev时出现的问题

解决办法:参考以下链接:https://blog.csdn.net/ytusdc/article/details/84581163

错误5: nvcc fatal   : Unsupported gpu architecture 'compute_20'

原因: 此时环境,Ubuntu16.04,  cuda9.2, cudnn7.0, 应该是gpu的architecture不支持compute_20

解决方法: caffe目录下的, Makefile.config 文件中 CUDA_ARCH ,把上面的包含compute_20的两行注释掉就好

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
		-gencode arch=compute_20,code=sm_21 \
                -gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode arch=compute_50,code=sm_50 \
		-gencode arch=compute_52,code=sm_52 \
		-gencode arch=compute_60,code=sm_60 \
		-gencode arch=compute_61,code=sm_61 \
		-gencode arch=compute_61,code=compute_61

错误6:src/caffe/layers/cudnn_relu_layer.cpp:16:45: error: ‘activ_desc_’ was not declared in this scope
   cudnn::createActivationDescriptor<Dtype>(&activ_desc_, CUDNN_ACTIVATION_RELU);

src/caffe/layers/cudnn_relu_layer.cpp: In member function ‘virtual void caffe::CuDNNReLULayer<Dtype>::LayerSetUp(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&)’:
src/caffe/layers/cudnn_relu_layer.cpp:16:45: error: ‘activ_desc_’ was not declared in this scope
   cudnn::createActivationDescriptor<Dtype>(&activ_desc_, CUDNN_ACTIVATION_RELU);

解决方法:将./include/caffe/layers的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,cudnn_lcn_laye.hpp</p>   都替换成最新版的caffe里的相应的同名文件

错误7、src/caffe/test/test_smooth_L1_loss_layer.cpp:11:35: fatal error: caffe/vision_layers.hpp: No such file or directory

src/caffe/test/test_smooth_L1_loss_layer.cpp:11:35: fatal error: caffe/vision_layers.hpp: No such file or directory

解决方法: 
找到文件$CAFFE_ROOT/src/caffe/test/test_smooth_L1_loss_layer.cpp 
删除第十一行  #include "caffe/vision_layers.hpp"

错误7:

(1) ./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: No such file or directory

解决办法:sudo apt-get install libgflags-dev

(2) ./include/caffe/util/mkl_alternate.hpp:14:19: fatal error: cblas.h: No such file or directory

解决办法:sudo apt-get install libblas-dev

(3) ./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

解决办法:在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/hdf5/serial

(4)  ./include/caffe/util/db_lmdb.hpp:8:18: fatal error: lmdb.h: No such file or directory

解决办法:sudo apt install liblmdb-dev

(5) /usr/bin/ld: cannot find -lcblas
    /usr/bin/ld: cannot find -latlas

解决办法:sudo apt install libatlas-base-dev

错误8:

 /usr/bin/ld: cannot find -lopenblas

在软件编译过程中,经常会碰到类似这样的编译错误:

/usr/bin/ld: cannot find -lxxx 的解决办法

这表示找不到库文件 lopenblas.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字。

其命名规则是:lib+库名(即xxx)+.so。

会发生这样的原因有以下三种情形:
1 系统没有安装相对应的lib
2 相对应的lib版本不对
3 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)

一般我们都是遇到了第三种情形,虽然安装了指定的库文件,但是没有进行正确的连接。

对应第一二种情况,我们可以直接用apt-get来解决问题。

apt-get install libxxx-dev

第三种情形的话,我们先用locate和find来找到指定的lib文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。

连接以后,输入ldconfig来让动态链接库供系统共享。

具体可参考: https://www.cnblogs.com/zhming26/p/6164131.html

错误9:(配置SSD时遇到的问题)

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory compilation terminated.

添加软链

sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy

配置文件Makefile.config,进入caffe目录
#在PYTHON_INCLUDE下(这里看仔细)

/usr/lib/python2.7/dist-packages/numpy/core/include

改为

/usr/local/lib/python2.7/dist-packages/numpy/core/include

因为numpy默认安装的位置是 /usr/local/lib/python2.7/, 不是Makefile.config 文件中的路径, 所以会报错找不到

错误10: (opencv3.4)

error while loading shared libraries: libopencv_core.so.3.4: cannot open shared object file: No such file or directory

原因:从这个提示可以知道系统找不到libopencv_core.so.3.2在哪儿,而系统是通过/etc/ld.so.conf中的路径找.so这个文件的。将libopencv_core.so.3.2的路径加入到.conf文件中就可以了。.so文件一般存放在/usr/local/lib目录下,博主进入这个文件目录下果然发现了这个文件。

对ld.so.conf这个文件进行编辑是需要获取超级权限的

cd ~                              //先返回到根目录
sudo vim /etc/ld.so.conf         //获取超级权限,并用vim编辑器打开该文件

进入vim编辑器之后先输入i 进入vim的编辑模式,然后在末尾加入/usr/local/lib即可,添加完之后,先按esc建退出编辑装态,然后输入:wq 保存并退出

sudo ldconfig

然后再运行make runtest 就可以正常运行了。

错误11:

Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR

GPU显存不够,可以查看GPU显示情况

 

错误12:

fatal error: pyconfig.h: No such file or directory

原因:主要是因为,使用的是Anaconda配置的caffe, 此时默认使用的是系统的python路径,CPLUS的path没有设置,因此把路径改成anaconda的python路径

如果使用的是系统的python路径,解决方法如下:

make clean
export CPLUS_INCLUDE_PATH=/usr/include/python2.7
make all -j8

如果使用的是anaconda Python,路径如下:

export CPLUS_INCLUDE_PATH=/home/cv/SoftWare/Anaconda3/envs/py36/include/python3.6m

 

参考文章: https://blog.csdn.net/kemgine/article/details/78781377

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值