再一次安装caffe

参考此博客装的caffehttps://blog.csdn.net/yhaolpz/article/details/71375762

安装过程中出现的问题(CUDA9.0+Cudnn7.0)

问题1:compute_20

https://blog.csdn.net/tjuyanming/article/details/79249964?utm_source=blogxgwz6

nvcc fatal:unsupported gpu architecture "compute_20"

解决:

问题显示不支持compute_20,将Makefile.config中CUDA_ARCH的gencode arch=compute_20这行注释掉

#在caffe路径下
$vim Makefile.config
#找到CUDA_PATH,删掉前两行
CUDA_ARCH :=-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

问题2:cudnn.h文件

./include/caffe/util/cndnn.hpp:5:19:fatal error:cndnn.h:No such file or directory

原因:没有cudnn.h文件,cudnn.h文件本应该在/usr/local/cuda-9.0/include/中,去查看了一下,确实没有,于是去同学那考了一个cudnn.h文件放到此文件夹下就行

#复制cudnn.h到/usr/local/cuda-9.0/include/
$sudo cp /home/ltpc/../cudnn.h /usr/local/cuda-9.0/include/
#其中/home/ltpc/../是cudnn.h所在的绝对路径

问题3:protobuf版本不同

https://blog.csdn.net/m0_38082419/article/details/80117132

.build_release/src/caffe/prete/caffe.pb.h:12:2:error:#error This file was generated by a new version of versin of protoc which is

 

 

原因:说protobuf版本太高了。

安装caffe的时候python的版本可选系统自带的python2.7或python3.5,也可以使用anaconda中的python版本,对应的Makefile.config中python路径对应的改变

查看下系统中也安装的protobuf

#查看哪些路径下安装了protobuf
$where protoc

 

#查看默认默认使用的protobuf
$which protoc

#查看当前默认的protobuf的版本
$protoc --version

#查看系统的protobuf版本
$sudo protoc --version

问题往往是在于系统存在多个protobuf版本,而当前默认版本不能满足便于caffe的要求,此时我们需要修改Makefile文件内容,改成自己希望的版本目录

#打开Makefile
$vim Makefile

找到这两行

$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --python_out=$(PY_PROTO_BUILD_DIR) $<

改为

$(Q)/usr/bin/protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)/usr/bin/protoc --proto_path=$(PROTO_SRC_DIR) --python_out=$(PY_PROTO_BUILD_DIR) $<

问题4:找不到lopencv_imgcodes

https://blog.csdn.net/xw2017/article/details/85230744

/usr/bin/ld:cannot find -lopencv_imgcodes

 

原因:

opencv_imgcodecs是OpenCV3.0的类包,但是自己使用的是OpenCV2.4,版本不匹配,将Makefile.config中OPENCV_VERSION:=3注释掉就行

$vim Makefile.config
#OPENCV_VERSION:=3

问题5:找不到lcudnn

https://stackoverflow.com/questions/43996484/ubuntu-caffe-installation-error-usr-bin-ld-cannot-find-lcudnn

/usr/bin/ld:cannot find -lcudnn

将缺少的cudnn文件复制到/usr/local/cuda-9.0/lib64/下

sudo cp /home/ltpc/lib64/libcudnn.so /usr/local/cuda-9.0/lib64/
sudo cp /home/ltpc/lib64/libcudnn.so.7 /usr/local/cuda-9.0/lib64/
sudo cp /home/ltpc/lib64/libcudnn.so.7.0.3 /usr/local/cuda-9.0/lib64/
sudo cp /home/ltpc/lib64/libcudnn_static.a /usr/local/cuda-9.0/lib64/
#其中/home/ltpc/lib64/是存放文件的绝对路径,改成你自己的绝对路径即可

问题6:/usr/local/cuda/lib64/libcudnn.so:file not recognized:File format not recognized

https://blog.csdn.net/qq_33144323/article/details/85465975

/usr/local/cuda/lib64/libcudnn.so:file not recognized:File format not recognized
collect2:error:ld returned 1 exit status
Makefile:582:recipe for target './build_release/lib/libvaffe.so.1.0.0' failed
make:*** [.build_release/lib/libcaffe/so.1.0.0] Error 1

解决:

移除除libcudnn.so.7.0.1以外的libcudnn.so文件

/usr/local/cuda/lib64$ sudo rm -rf libcudnn.so libcudnn.so.7 

重新生成软连接

sudo ln -s libcudnn.so.7.0.1 libcudnn.so.7 
sudo ln -s libcudnn.so.7 libcudnn.so 

 问题7:.build_release/tools/caffe:error while loading shared libraries:libcudart.so.9.0:cannot open shared object file:No such file or directory

 

.build_release/tools/caffe:error while loading shared libraries:libcudart.so.9.0:cannot open shared object file:No such file or directory
Makefile:542:recipe for target 'runtest' failed
Make:*** [runtest] Error 127

cuda9.0链接出错,解决方法:

sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig 
sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig 
sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig

问题8:error while loading shared libraries: libcudnn.so.7: cannot open shared object file: No such file or

https://blog.csdn.net/sinat_23619409/article/details/85047788

在/usr/local/lib/目录下找不到到libcudnn.so.7这个文件,该文件在/usr/local/cuda-9.0/lib64/目录下可以找到,将其复制一份即可

$sudo cp /usr/local/cuda-9.0/lib64 /usr/local/lib/

注:每次解决完问题,记得先sudo make clean,然后再make all -j8

再次安装caffe,感觉比第一次有信心得多,面对这么些错误不是心里烦躁,而是一步步是查找到底问题出在哪里,对linux系统的一些指令也熟悉了许多,知道都是什么意思了,感觉自己进步了,哈哈哈哈哈,继续加油,也感谢小伙伴那么不厌其烦帮我,感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值