导出onnx模型报错
问题描述 印章识别模型导出onnx使用如下命令 paddle2onnx --model_dir ./output/inference/det_r50_seal_0203_all --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./model_convert/onnx/seal_db++.onnx --enable_onnx_checker True
更多信息 :
-
用于部署的推理引擎: paddle2onnx 1.2.6 paddleocr 2.7.3 paddlepaddle-gpu 2.6.1.post117
-
为什么需要转换为ONNX格式: 预训练,自动标注
-
你的联系方式(Email/Wechat/Phone):
-
Wechat:22869750 报错截图
其他信息
百度这边的解决办法是,将deformable_conv替换为普通卷积然后重新训练。
@jiuyuedeyu156 大牛您好,不明白您说的什么意思,我是小白,我是训练印章,导出onnx报错。
你需要得到印章模型的paddle代码和训练集,然后把代码中deformable_conv算子改成conv2d,在训练集上重新训练,最后导出onnx。我们这边已经试验过了。
大佬,再问您一下,deformable_conv、conv2d哪个算子效果比较好?
deformable_conv这个算子,ONNXRuntime不支持,导出了也没用
非常感谢各位大佬
大佬,再问您一下,deformable_conv、conv2d哪个算子效果比较好?
conv2d效果差,会掉几个点
@Zheng-Bicheng 大佬,需要改哪个文件哪个地方的代码?小白一枚,PaddleOCR]# find ./ | xargs grep -ri 'deformable_conv'搜索相关关键字也没搜索到。
试下这几个关键词
@jiuyuedeyu156 大佬,具体如何修改呢?
@jiuyuedeyu156 大佬,是需要改/ppdet/modeling/backbones /resnet.py中如下方法吗?
def _conv_norm(self,
input,
num_filters,
filter_size,
stride=1,
groups=1,
act=None,
name=None,
dcn_v2=False):
_name = self.prefix_name + name if self.prefix_name != '' else name
if not dcn_v2:
conv = fluid.layers.conv2d(
input=input,
num_filters=num_filters,
filter_size=filter_size,
stride=stride,
padding=(filter_size - 1) // 2,
groups=groups,
act=None,
param_attr=ParamAttr(name=_name + "_weights"),
bias_attr=False,
name=_name + '.conv2d.output.1')
else:
抱歉哈,我是工程的,不清楚怎么改算法细节