cudnn_conv_layer.cpp:53] Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR
have the problem been solved? I hace the same problem.
I have the same problem as well......
I solve this issue when I turn my prototxt to in-place mode
But it happened when I run the convertCaffe.py. (the process of generating the prototxt and caffemodel) How could I solve the issue?
you can modify the function convertToCaffe in convertCaffe.py, this func can be seen as two parts, one for generating the prototxt, the other for generating the caffemode ,(https://github.com/MTlab/onnx2caffe/blob/46ae6b8b7838361e80cb441a4ca3d082be21bf44/convertCaffe.py#L73) you just comment the second part,then you can get the prototxt
you divide the func convertToCaffe into two parts, one for prototxt , the other for caffemode, then you can modify the prototxt that is generated by the first part to in-place mode, then feed this in-place mode prototxt to the scecond part
How do you turn the prototxt to in-place mode? Could you please show me an example?
you can find lots of examples in internet
Do you mean set the 'in_place' True in relu, bn and scale ?
I added 'engine: CAFFE' to some of the convolution layers and the caffemodel is generated successfully. Thank you so much!
@FunnyExplorer Hi, i met the same problem, where should i add the 'engine:CAFFE' to the convolutuion layers? plz help.
@kongchibin , i use your methods and it works, thankyou.
I tried to disable the Cudnn when compile Caffe, and then I can convert the model without this problem.
I tried to disable the Cudnn when compile Caffe, and then I can convert the model without this problem. Yes,you are right! Good!
Disable the Cudnn when compile Caffe works for me ,too.
Edit _operators.py to add engine: CAFFE for depth-wise conv in prototxt.
if groups!=W.shape[0]:
layer = myf("Convolution", node_name, [input_name], [output_name],
kernel_h = kernel_shape[0],kernel_w = kernel_shape[1],
stride_h=strides[0], stride_w = strides[1], group = groups,
pad_h = pads[0], pad_w = pads[1],
num_output=W.shape[0], dilation = dilations[0], bias_term = bias_flag)
else:
# for dw conv
layer = myf("Convolution", node_name, [input_name], [output_name],
kernel_h=kernel_shape[0], kernel_w=kernel_shape[1],
stride_h=strides[0], stride_w=strides[1], group=groups,
pad_h=pads[0], pad_w=pads[1],
num_output=W.shape[0], dilation=dilations[0], bias_term=bias_flag, engine=1)
line 52 of _operators.py file.