我已经在ubuntu中安装了cudnn和cuda,而我
make all -j4
在caffe-master目录下,它传递得很好。但是当我
进行测试
它显示:
CXX src/caffe/test/test_im2col_layer.cpp
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/test/test_im2col_layer.cpp:5:
./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 ./include/caffe/blob.hpp:8,
from src/caffe/test/test_im2col_layer.cpp:5:
/usr/local/cuda/include/cudnn.h:799:27: note: declared here
cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
^
Makefile:572: recipe for target '.build_release/src/caffe/test/test_im2col_layer.o' failed
make: *** [.build_release/src/caffe/test/test_im2col_layer.o] Error 1
我安装了最新版本的cudnn(用于linux的cudnn v5库)和cuda(cuda 7.5)。谁能告诉我如何解决这个问题?非常感谢!
答案 0 :(得分:3)
CuDNN v5与caffe不兼容。您可以尝试制作一个分叉并合并它:https://github.com/BVLC/caffe/pull/3919/files,但它没有得到官方支持。
答案 1 :(得分:1)
请注意,最新的Caffe(2016年11月8日)声明它支持CUDA 7 +。
我仍然需要解决这个问题,因为我正在使用一个较旧的caffe链接到一个更快的rcnn github repo。我正在升级它以支持CUDNN 5和CUDA 8.请注意我不是Caffe专家,但是在我成功编译之后所有测试都成功运行。
对于签名似乎已经改变的方法,我发现还有_v3和_v4等价物(对我来说,我看了一下/usr/local/cuda/include/cudnn.h)。我改变了失败的方法
FROM: CUDNN_CHECK(cudnnSetPooling2dDescriptor(* pool_desc,* mode,h,w,
TO: CUDNN_CHECK(cudnnSetPooling2dDescriptor _v3 (* pool_desc,* mode,h,w, 4. src / caffe / layers / cudnn_conv_layer.cu
我需要在以下文件中执行类似的操作:
希望对你有所帮助!
答案 2 :(得分:0)
尝试if(!window['plugins']) {
//browser
}
- > def iso_8601_format(dt):
"""YYYY-MM-DDThh:mm:ssTZD (1997-07-16T19:20:30-03:00)"""
if dt is None:
return ""
fmt_datetime = dt.strftime('%Y-%m-%dT%H:%M:%S')
tz = dt.utcoffset()
if tz is None:
fmt_timezone = "+00:00"
else:
fmt_timezone = str.format('{0:+06.2f}', float(tz.total_seconds() / 3600))
return fmt_datetime + fmt_timezone
- > make clean
- > make all
。如果您有权限错误,请使用make test
。