本文主要是介绍ubuntu16.04+ Openpose + caffe + training,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://blog.csdn.net/dragongiri/article/details/97623603
error: too few arguments to function ‘cudnnStatus_t cudnnSetConvolution2dDescriptor(cudnnConvo问题解决
坎幽黑尔弥? 2018-09-05 15:03:15 2865 收藏 5
分类专栏: 深度学习
版权
在编译caffe时,如果你要使用cudnn,那么需要在caffe的Makefile.config文件中将CUDNN=1这一行取消注释,然后进行编译。
但是我在编译用于训练openpose模型的caffe时,遇到了如下错误:
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::setConvolutionDesc(cudnnConvolutionStruct**, cudnnTensorDescriptor_t, cudnnFilterDescriptor_t, int, int, int, int)’:
./include/caffe/util/cudnn.hpp:112:3: error: too few arguments to function ‘cudnnStatus_t cudnnSetConvolution2dDescriptor(cudnnConvolutionDescriptor_t, int, int, int, int, int, int, cudnnConvolutionMode_t, cudnnDataType_t)’
CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,
^
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/local/cuda/include/cudnn.h:537:27: note: declared here
cudnnStatus_t CUDNNWINAPI cudnnSetConvolution2dDescriptor( cudnnConvolutionDescriptor_t convDesc,
^
Makefile:579: recipe for target '.build_release/src/caffe/syncedmem.o' failed
make: *** [.build_release/src/caffe/syncedmem.o] Error 1
make: *** Waiting for unfinished jobs....
在保证你的cudnn以及cuda安装正常并且编译官方的caffe能够通过的情况下,则是这个训练openpose的caffe中的源码问题。
解决方法:
将之前编译通过的caffe中的源码中的一个cudnn.hpp文件拷贝到出问题的caffe的相应位置,重新编译就能解决。
例如:
出现上述问题的caffe的目录为~/caffe-pose-train,你之前编译通过的caffe的目录为~/caffe。则执行命令:
cp ~/caffe/include/caffe/util/cudnn.hpp ~/caffe-pose-train/include/caffe/util/
only change this one file is enough
然后在caffe-pose-train目录下:
make all -j4 即可编译通过。
原因:我猜测是因为训练openpose用的这个caffe是在老版本的基础之上进行修改得到的,因此支持的cudnn也是老版本,因此当你的系统的cudnn版本>6就会产生上述问题,而你下载的官方的caffe会随着cudnn的版本更新而更新上述cudnn.hpp文件,以及其他相关的源码,因此在编译官方的caffe时不会出现此问题。而我的系统中的cudnn版本时8.0,产生上述错误。
这篇关于ubuntu16.04+ Openpose + caffe + training的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!