最近在做onnx模型转换到caffe模型的工作,在onnx=>caffe的时候遇到如下错误:

网上搜索这个问题的解答很多,大多都是使用超级用户运行还有就是重新编译caffe(注释掉cudann),我实在docker环境下运行的本身就是root用户,重新编译caffe太繁琐,最后在https://github.com/MTlab/onnx2caffe/issues/25找到解决方法,亲测可行,在模型prototxt卷积参数部分添加engine: CAFFE即可,也就是修改模型的prototxt中的所有convolution_param参数添加engine: CAFFE,示例入下:
原始内容:
layer {
name: "Conv_0"
type: "Convolution"
bottom: "input"
top: "470"
convolution_param {
num_output: 64
bias_term: true
group: 1
pad_h: 1
pad_w: 1
kernel_h: 3
kernel_w: 3
stride_h: 2
stride_w: 2
dilation: 1
}
}修改后:
layer {
name: "Conv_0"
type: "Convolution"
bottom: "input"
top: "470"
convolution_param {
num_output: 64
bias_term: true
group: 1
pad_h: 1
pad_w: 1
kernel_h: 3
kernel_w: 3
stride_h: 2
stride_w: 2
dilation: 1
engine: CAFFE
}
}在进行caffemodel转换时采用修改后prototxt的即可。
版权声明:本文为weicao1990原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。