PaddlePaddle / PaddleX

Low-code development tool based on PaddlePaddle(飞桨低代码开发工具)
Apache License 2.0
4.72k stars 929 forks source link

将paddleX训练的模型进行openvino模型转换后推理过程出错 #511

Open dongyangli-del opened 3 years ago

dongyangli-del commented 3 years ago

image

如图,在树莓派3B+上运行相关代码,载入转换后生成的IR模型文件后进行推理,报错如下: terminate called after throwing an instance of 'InferenceEngine::details::InferenceEngineException' what(): Cannot create Range layer GlobalAveragePool@0/global_pooling_reduce_axis id:265

dongyangli-del commented 3 years ago

image

syyxsxx commented 3 years ago

@dongyangli-del 你好,是什么模型呢?VPU下面是不支持Range layer的 请参考: https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_Supported_Devices.html

dongyangli-del commented 3 years ago

@syyxsxx 你好我是采用的paddleX训练出的mobilenet图像分类模型转换成的IR模型,之前用mobilev1好像报错说不支持,就用了另一个,转换的过程没有出错,但是转换后推理的过程出错了

@dongyangli-del 你好,是什么模型呢?VPU下面是不支持Range layer的 请参考: https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_Supported_Devices.html

syyxsxx commented 3 years ago

你好,针对这个问题,请使用2020.4版本的OpenVINO转换mobilenet-v2模型

dongyangli-del commented 3 years ago

你好,针对这个问题,请使用2020.4版本的OpenVINO转换mobilenet-v2模型

我记得官方文档上说paddleX不支持arm架构,paddleX本身是不能在树莓派上使用的吧?那么请问将PaddleX训练出的模型转换为IR模型的话是否就需要先单独下好一个openvino for windows,在windows上转换完模型再放进树莓派中进行推理呢?之前我是这样做的。

jiangjiajun commented 3 years ago

PaddleX的模型,可以通过PaddleLite转化为移动端模型,或通过OpenVINO转化为OpenVINO的IR,继而部署到Arm设备上。上面@syyxsxx 说的是指在部署时,需要注意openvino的版本,因为此前我们发现其它版本在VPU上可能会导致错误

dongyangli-del commented 3 years ago

image

你们好,请问转换openvino时这个错误是什么原因呢?同样的inference格式模型,这次转换IR模型出现了新错误

jiangjiajun commented 3 years ago

路径不支持中文或空格

dongyangli-del commented 3 years ago

路径不支持中文或空格

你好,我用同样的环境,转换第一次IR模型成功并成功在树莓派部署,后又调参训练了一个mobilenetv2模型,结果转换IR模型报错如下: image

dongyangli-del commented 3 years ago

路径不支持中文或空格

你好,我用同样的环境,转换第一次IR模型成功并成功在树莓派部署,后又调参训练了一个mobilenetv2模型,结果转换IR模型报错如下: image 感谢之前您的指导,仔细阅读文档发现只支持导出后的paddle模型向openvino模型的转换,目前已经成功了!

syyxsxx commented 3 years ago

@dongyangli-del 需要先转成inference model

dongyangli-del commented 3 years ago

image 你好,请问为什么训练paddleX模型的时候图片预测的效果很好,但是在部署到树莓派上以后推理的过程中forward()运算的结果打印出来都只是同一个值[[1.,0.]]呢?(图示为用了两张不同类别的图片的推理结果) image

图示为视频图像分类结果: image 可以看到无论输入为任何种类图像,输出都是同一个数,请问这是什么原因呢?

dongyangli-del commented 3 years ago

@syyxsxx

syyxsxx commented 3 years ago

OpenVINO 部署代码可以参考如下demo文件 https://github.com/PaddlePaddle/PaddleX/blob/develop/deploy/openvino/python/demo.py