您的位置:首页 > 其它

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

2017-04-11 22:07 453 查看
执行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( href="http://blog.csdn.net/kkk584520/article/details/51163564" target=_blank>卜居

附:

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

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.

此次合并后虽仍有部分文件没有合并成功,但已经不影响编译和使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: