Faster R-cnn和Cudnn5.0冲突解决过程记录

执行Faster R-cnn编译时遇到了如下问题

In file included from ./include/caffe/util/device_alternate.hpp:40:0,  
                 from ./include/caffe/common.hpp:19,  
                 from src/caffe/syncedmem.cpp:1:  
./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:  
./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’  
         pad_h, pad_w, stride_h, stride_w));  
                                         ^  
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’  
     cudnnStatus_t status = condition; \  
                            ^  
In file included from ./include/caffe/util/cudnn.hpp:5:0,  
                 from ./include/caffe/util/device_alternate.hpp:40,  
                 from ./include/caffe/common.hpp:19,  
                 from src/caffe/syncedmem.cpp:1:  
/usr/include/cudnn.h:803:27: note: declared here  
 cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(  
                           ^  
Makefile:563: recipe for target '.build_release/src/caffe/syncedmem.o' failed  
make: *** [.build_release/src/caffe/syncedmem.o] Error 1  
make: *** Waiting for unfinished jobs....  
In file included from ./include/caffe/util/device_alternate.hpp:40:0,  
                 from ./include/caffe/common.hpp:19,  
                 from ./include/caffe/blob.hpp:8,  
                 from src/caffe/blob.cpp:4:  
./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:  
./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’  
         pad_h, pad_w, stride_h, stride_w));  

出错原因应该为Faster R-cnn 和cudnn5.0不兼容,解决办法一是降低更换cudnn的版本,另一种是提高caffe的版本。在下还搜到了大神的一个解决办法。

http://blog.csdn.net/rzjmpb/article/details/52373012,代码贴在下面

cd py-faster-rcnn/caffe-fast-rcnn  
Git remote add caffe https://github.com/BVLC/caffe.git  
git fetch caffe  
git merge caffe/master

鄙人愚钝,对于git合并命令不是很熟悉,一周折腾merge命令还是没有成功,我把过程附到最后,希望大牛们看到此文章能指点一二。


最后解决办法还是在csdn上一番苦寻找到的,参考了卜居和阿·甘的博客,感谢两位的分享。直接贴链接比较合适,后期我还会给出我的caffe-fast-rcnn版本,里面改了一些其它的数据,由于没有详细记录,直接贴结果方便大家使用,大家可以直接下载替换faster-rcnn中的caffe

http://blog.csdn.net/kexinmcu/article/details/53178428(阿甘)

http://blog.csdn.net/kkk584520/article/details/51163564(卜居


附:

但在执行最后一步(合并)的时候,又遇到了棘手的问题。

error: Your local changes to the following files would be overwritten by merge:  
    Makefile  
Please, commit your changes or stash them before you can merge.  
error: The following untracked working tree files would be overwritten by merge:  
    .github/ISSUE_TEMPLATE.md  
    cmake/Modules/FindNCCL.cmake  
    docker/README.md  
    docker/cpu/Dockerfile  
    docker/gpu/Dockerfile  
    docs/install_apt_debian.md  
    docs/tutorial/layers/absval.md  
    docs/tutorial/layers/accuracy.md  
    docs/tutorial/layers/argmax.md  
    docs/tutorial/layers/batchnorm.md  
    docs/tutorial/layers/batchreindex.md  
    docs/tutorial/layers/bias.md  
    docs/tutorial/layers/bnll.md  
    docs/tutorial/layers/concat.md  
    docs/tutorial/layers/contrastiveloss.md  
    docs/tutorial/layers/convolution.md  
    docs/tutorial/layers/crop.md  
    docs/tutorial/layers/data.md  
    docs/tutorial/layers/deconvolution.md  
    docs/tutorial/layers/dropout.md  
    docs/tutorial/layers/dummydata.md  
    docs/tutorial/layers/eltwise.md  
    docs/tutorial/layers/elu.md  
    docs/tutorial/layers/embed.md  
    docs/tutorial/layers/euclideanloss.md  
    docs/tutorial/layers/exp.md  
    docs/tutorial/layers/filter.md  
    docs/tutorial/layers/flatten.md  
    docs/tutorial/layers/hdf5data.md  
    docs/tutorial/layers/hdf5output.md  
    docs/tutorial/layers/hingeloss.md  
    docs/tutorial/layers/im2col.md  
    docs/tutorial/layers/imagedata.md  
    docs/tutorial/layers/infogainloss.md  
    docs/tutorial/layers/innerproduct.md  
    docs/tutorial/layers/input.md  
    docs/tutorial/layers/log.md  
    docs/tutorial/layers/lrn.md  
    docs/tutorial/layers/lstm.md  
    docs/tutorial/layers/memorydata.md  
    docs/tutorial/layers/multinomiallogisticloss.md  
    docs/tutorial/layers/mvn.md  
    docs/tutorial/layers/parameter.md  
    docs/tutorial/layers/pooling.md  
    docs/tutorial/layers/power.md  
    docs/tutorial/layers/prelu.md  
    docs/tutorial/layers/python.md  
    docs/tutorial/layers/recurrent.md  
    docs/tutorial/layers/reduction.md  
    docs/tutorial/layers/relu.md  
    docs/tutorial/layers/reshape.md  
    docs/tutorial/layers/rnn.md  
    docs/tutorial/layers/scale.md  
    docs/tutorial/layers/sigmoid.md  
    docs/tutorial/layers/sigmoidcrossentropyloss.md  
    docs/tutorial/layers/silence.md  
    docs/tutorial/layers/slice.md  
    docs/tutorial/layers/softmax.md  
    docs/tutorial/layers/softmaxwithloss.md  
    docs/tutorial/layers/split.md  
    docs/tutorial/layers/spp.md  
    docs/tutorial/layers/tanh.md  
    docs/tutorial/layers/threshold.md  
    docs/tutorial/layers/tile.md  
    docs/tutorial/layers/windowdata.md  
    examples/02-fine-tuning.ipynb  
    examples/brewing-logreg.ipynb  
    examples/images/cat gray.jpg  
    examples/mnist/train_lenet_docker.sh  
    examples/pascal-multilabel-with-datalayer.ipynb  
    examples/pycaffe/layers/pascal_multilabel_datalayers.py  
    examples/pycaffe/tools.py  
    include/caffe/layers/crop_layer.hpp  
    include/caffe/layers/input_layer.hpp  
    include/caffe/layers/lstm_layer.hpp  
    include/caffe/layers/parameter_layer.hpp  
    include/caffe/layers/recurrent_layer.hpp  
    include/caffe/layers/rnn_layer.hpp  
    include/caffe/util/nccl.hpp  
    python/caffe/coord_map.py  
    python/caffe/test/test_coord_map.py  
    python/caffe/test/test_draw.py  
    python/train.py  
    scripts/split_caffe_proto.py  
    scripts/travis/build.sh  
    scripts/travis/configure-cmake.sh  
    scripts/travis/configure-make.sh  
    scripts/travis/configure.sh  
    scripts/travis/defaults.sh  
    scripts/travis/install-deps.sh  
    scripts/travis/install-python-deps.sh  
    scripts/travis/setup-venv.sh  
    scripts/travis/test.sh  
    src/caffe/layers/crop_layer.cpp  
    src/caffe/layers/crop_layer.cu  
    src/caffe/layers/input_layer.cpp  
    src/caffe/layers/lstm_layer.cpp  
    src/caffe/layers/lstm_unit_layer.cpp  
    src/caffe/layers/lstm_unit_layer.cu  
    src/caffe/layers/parameter_layer.cpp  
    src/caffe/layers/recurrent_layer.cpp  
    src/caffe/layers/recurrent_layer.cu  
    src/caffe/layers/rnn_layer.cpp  
    src/caffe/test/test_crop_layer.cpp  
    src/caffe/test/test_lstm_layer.cpp  
    src/caffe/test/test_rnn_layer.cpp  
Please move or remove them before you can merge.  
Aborting  


不是很懂git工具的合并命令,但一番苦找,找到了

sudo git clean -d -fx

成功移除合并多余的部分,移除后的部分为
sudo git clean -d -fx
Removing .github/
Removing docker/
Removing docs/tutorial/layers/

再次合并

sudo git merge caffe/master
Auto-merging src/caffe/proto/caffe.proto
Auto-merging src/caffe/layers/dropout_layer.cpp
Removing src/caffe/data_reader.cpp
Removing scripts/travis/travis_setup_makefile_config.sh
Removing scripts/travis/travis_install.sh
Removing scripts/travis/travis_build_and_test.sh
Auto-merging python/caffe/_caffe.cpp
CONFLICT (content): Merge conflict in python/caffe/_caffe.cpp
Auto-merging python/caffe/__init__.py
CONFLICT (content): Merge conflict in python/caffe/__init__.py
Auto-merging include/caffe/layers/python_layer.hpp
Auto-merging include/caffe/layer.hpp
Removing include/caffe/data_reader.hpp
Removing examples/hdf5_classification/solver.prototxt
Removing examples/hdf5_classification/nonlinear_solver.prototxt
Removing examples/03-fine-tuning.ipynb
Removing examples/02-brewing-logreg.ipynb
Auto-merging LICENSE
CONFLICT (content): Merge conflict in LICENSE
Automatic merge failed; fix conflicts and then commit the result.

此次合并后虽仍有部分文件没有合并成功,但已经不影响编译和使用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值