【Hackathon第三期】任务80任务80的OCR应用中,三个模型的输入图片分别经过预处理送入模型,每个模型各自的输入都是动态的,第一个模型的预处理仅做了32对齐,第三个模型根据检测出来的字符数量决定输入模型的字符图片长度,onnx模型的输入都是动态的。咨询过瑞星微的技术人员后确认瑞星微的RKNN模型转换不支持动态的batch和动态的shape,无法实现功能。
xzv2uavs1#
Hi,@133dzs
尝试一下使用这个命令来固定onn模型的shape https://github.com/PaddlePaddle/Paddle2ONNX#%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BD%AC%E6%8D%A2
python -m paddle2onnx.optimize --input_model model.onnx \ --output_model new_model.onnx \ --input_shape_dict "{'x':[1,3,224,224]}"
iqxoj9l92#
您好,onnx模型的输入可以比较简单地修改,但是固定的输入shape无法满足实际应用的需求,送入模型的图片的尺寸是动态的,即时固定了送入检测模型的图片大小,分类模型的输入大小也会根据检测到的字符数量变化,所以分类模型的输入必须动态。问题是瑞星微的模型转换不支持动态输入
4smxwvx53#
可以去PaddleOCR咨询一下,如何固定每个模型的输入大小。我想应该是有方式解决的
yzckvree4#
好的,感谢
lf5gs5x25#
这个问题之前讨论过,RKNN只支持静态图,当时商量出来的替代方案是分档为几个级别的静态模型,比如动态输入范围在1到10,分为输入为3,6,10的三个静态模型。
3lxsmp7m6#
请问这个**“动态输入范围在1到10,分为输入为3,6,10的三个静态模型”**是指batch还是shape呢?rknn对多batch的支持不是很好,实际模型转换时可能需要batch=1。而且由于不支持动态shape,目前是通过把所有输入通过补0的方式调整到一个指定的较大shape,实际推理过程中会出现原本(1,3,32,60)的输入被补到(1,3,32,660)的情况,性能上的损失较明显
xmjla07d7#
指shape
7条答案
按热度按时间xzv2uavs1#
Hi,@133dzs
尝试一下使用这个命令来固定onn模型的shape https://github.com/PaddlePaddle/Paddle2ONNX#%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BD%AC%E6%8D%A2
iqxoj9l92#
您好,onnx模型的输入可以比较简单地修改,但是固定的输入shape无法满足实际应用的需求,送入模型的图片的尺寸是动态的,即时固定了送入检测模型的图片大小,分类模型的输入大小也会根据检测到的字符数量变化,所以分类模型的输入必须动态。问题是瑞星微的模型转换不支持动态输入
4smxwvx53#
可以去PaddleOCR咨询一下,如何固定每个模型的输入大小。我想应该是有方式解决的
yzckvree4#
好的,感谢
lf5gs5x25#
您好,onnx模型的输入可以比较简单地修改,但是固定的输入shape无法满足实际应用的需求,送入模型的图片的尺寸是动态的,即时固定了送入检测模型的图片大小,分类模型的输入大小也会根据检测到的字符数量变化,所以分类模型的输入必须动态。问题是瑞星微的模型转换不支持动态输入
这个问题之前讨论过,RKNN只支持静态图,当时商量出来的替代方案是分档为几个级别的静态模型,比如动态输入范围在1到10,分为输入为3,6,10的三个静态模型。
3lxsmp7m6#
请问这个**“动态输入范围在1到10,分为输入为3,6,10的三个静态模型”**
是指batch还是shape呢?rknn对多batch的支持不是很好,实际模型转换时可能需要batch=1。而且由于不支持动态shape,目前是通过把所有输入通过补0的方式调整到一个指定的较大shape,实际推理过程中会出现原本(1,3,32,60)的输入被补到(1,3,32,660)的情况,性能上的损失较明显
xmjla07d7#
指shape