参考此博客装的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
/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系统的一些指令也熟悉了许多,知道都是什么意思了,感觉自己进步了,哈哈哈哈哈,继续加油,也感谢小伙伴那么不厌其烦帮我,感谢