历时一天的时间终于把Caffe和Faster RCNN搞定了,关于安装Caffe与Faster RCNN之前的cuda与cudnn请自行百度安装,安装的版本必须匹配起来,否则后面会出现各种意想不到的问题。
安装Caffe遇到的问题如下:
1、Make报错显示:nvcc fatal : Unsupported gpu architecture 'compute_20'
此问题需要修改Makefile.config文件,修改成如下内容。
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
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
将原有的-gencode arch=compute_20,code=sm_20 \ 与-gencode arch=compute_21,code=sm_21 \删掉,因为我安装的是cuda 9.0
2、报错显示找不到hdf5等文件,还是需要修改Makefile.config文件,修改内容如下:
# Whatever else you find you need goes here.
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
添加的内容已经标红。
3、另外关于第二种报错还需要修改Makefle文件,修改内容如下,增加内容已经标红
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
4、关于编译过程中报protoc版本过低或者过高等问题。
此时需要查看自己电脑版本的protoc版本是多少,输入命令:protoc --version,另外输入:whereis protoc 查看一下protoc的默认路径,此时解决方法是注释掉安装的Anaconda路径并生效,然后卸载Anaconda里面的安装包,最后会显示默认为系统的protoc,然后在make就成功了。
5、其他问题可能是caffe需要的安装包没有安装全。
搞定Caffe后感觉整个世界都安静了,马上着手安装Faster RCNN,没想到遇到的又是狂风暴雨。
1、将已经编译好的caffe下的/caffe/include/caffe/layers下的所有cudnn开头的文件全部复制到Faster RCNN相应的路径下。
2、将/caffe/include/caffe/util文件下的cudnn.hpp复制到Faster RCNN相应的路径下。
3、将/caffe/src/caffe/layers文件下的cudnn开头的激活函数命名的文件,后缀为cu或者cpp复制到Faster RCNN相应的路径下,并将cudnn_conv_layer.cu里的
cudnnConvolutionBackwardData_v3 替换为 cudnnConvolutionBackwardData
cudnnConvolutionBackwardFilter_v3 替换为 cudnnConvolutionBackwardFilter