./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:145:3: error: ‘CUDNN_PROPAGATE_NAN’ was not declared in this scope
CUDNN_CHECK(cudnnSetPooling2dDescriptor_v4(*pool_desc, *mode,
^
./include/caffe/util/cudnn.hpp:145:3: error: there are no arguments to ‘cudnnSetPooling2dDescriptor_v4’ that depend on a template parameter, so a declaration of ‘cudnnSetPooling2dDescriptor_v4’ must be available [-fpermissive]
CUDNN_CHECK(cudnnSetPooling2dDescriptor_v4(*pool_desc, *mode,
^
./include/caffe/util/cudnn.hpp:145:3: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
./include/caffe/util/cudnn.hpp: At global scope:
./include/caffe/util/cudnn.hpp:151:40: error: variable or field ‘createActivationDescriptor’ declared void
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:151:40: error: ‘cudnnActivationDescriptor_t’ was not declared in this scope
./include/caffe/util/cudnn.hpp:151:69: error: ‘activ_desc’ was not declared in this scope
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:152:27: error: expected primary-expression before ‘mode’
cudnnActivationMode_t mode) {
^
./include/caffe/util/cudnn.hpp:145:3: error: ‘CUDNN_PROPAGATE_NAN’ was not declared in this scope
CUDNN_CHECK(cudnnSetPooling2dDescriptor_v4(*pool_desc, *mode,
^
./include/caffe/util/cudnn.hpp:145:3: error: there are no arguments to ‘cudnnSetPooling2dDescriptor_v4’ that depend on a template parameter, so a declaration of ‘cudnnSetPooling2dDescriptor_v4’ must be available [-fpermissive]
CUDNN_CHECK(cudnnSetPooling2dDescriptor_v4(*pool_desc, *mode,
^
./include/caffe/util/cudnn.hpp:145:3: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
./include/caffe/util/cudnn.hpp: At global scope:
./include/caffe/util/cudnn.hpp:151:40: error: variable or field ‘createActivationDescriptor’ declared void
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:151:40: error: ‘cudnnActivationDescriptor_t’ was not declared in this scope
./include/caffe/util/cudnn.hpp:151:69: error: ‘activ_desc’ was not declared in this scope
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:152:27: error: expected primary-expression before ‘mode’
cudnnActivationMode_t mode) {
^
make: *** [.build_release/src/caffe/util/db.o] Error 1
解决方法:
因为ssd 太老了,我的cudnn 是5.1 的版本
所以需要两者相匹配: