PaddlePaddle / PaddleX

All-in-One Development Tool based on PaddlePaddle(飞桨低代码开发工具)
Apache License 2.0
4.9k stars 958 forks source link

openvino IR模型转换报错 #425

Open Monday-Leo opened 3 years ago

Monday-Leo commented 3 years ago

问题类型:模型部署 问题描述
将paddle模型用deploy/openvino/python/converter.py转换时候报错,模型为mobilenetv2的分类网络。 报错显示缺少mo.main模块。 A$Q78JI_KYQDFI6T3Q5KU4T

========================

请在这里描述您在使用过程中的问题,说明您的部署环境,部署需求,模型类型和应用场景等,便于开发人员快速响应。

Monday-Leo commented 3 years ago

已经解决上述问题,但是将导出的IR模型部署在树莓派上时,加载模型报错。请问该如何解决,openvino版本2021.1.023. Cache_6e0bf3dc464c5538 Cache_-fcfe5cbe762523d

jiangjiajun commented 3 years ago

在上面导出模型时,你指定fixed_shape为[500, 500] ,这个是你模型训练时的大小吗,一般而言,这个shape都是32的倍数

Monday-Leo commented 3 years ago

fixed_shape改为【64.64】之后再次导出模型,还是报相同的错误,不能加载ID为260的池化层,请问该怎么解决?

Monday-Leo commented 3 years ago

在电脑端用Windows版本呢的openvino 2021.1版本的可以正常运行,在树莓派上用树莓派版本的openvino就无法加载模型。

jiangjiajun commented 3 years ago

这里fixed_shape对于分类模型而言,并不是随便填的,而是你模型训练时设定输入到模型的图像大小是多少就得填多少

例如如果你的transforms里面是先Resize, 再Crop,那么说模型数据预处理后,都是以crop后的形状输入给模型,那如果crop出来是224, 224的,那么模型的fixed_shape就是224,224

syyxsxx commented 3 years ago

@lhy823436493 您好,首先转模型的时候fixed_input_shape需要指定为模型的输入大小,另外OpenVINO在树莓派上面版本最新更新到了2020.4,若您使用的是2020.4版本请使用对应的OpenVINO版本转模型

Monday-Leo commented 3 years ago

fix_shape更改为【224,224】以后依旧报错,训练时的transforms如下。模型转换我使用的是paddlex deploy/openvino/python/converter.py 树莓派上部署的版本是2020.1.023,paddlex怎么调整对应的openvino转换模型。 45OMI05XM8X64O3{SU(ETAV

Monday-Leo commented 3 years ago

是重新在PC端安装openvino2020.1的版本之后,再次转换模型吗?

Monday-Leo commented 3 years ago

windows10 用2020.1转换后部署到树莓派还是有报错,应该是转换后模型有问题,树莓派无法正常加载。

syyxsxx commented 3 years ago

windows10 用2020.1转换后部署到树莓派还是有报错,应该是转换后模型有问题,树莓派无法正常加载。

@lhy823436493 是在树莓派上插入了intel神经计算棒用OpenVINO来加速吧?对于VPU在转换模型的时候需要指定data_type 为FP16,参考: https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/openvino/export_openvino_model.md#%E5%AF%BC%E5%87%BAopenvino%E6%A8%A1%E5%9E%8B 在运行的时候需要指定device为 'MYRIAD',请参考 https://github.com/syyxsxx/PaddleX/blob/develop/docs/deploy/openvino/python.md#%E9%A2%84%E6%B5%8B%E9%83%A8%E7%BD%B2

Monday-Leo commented 3 years ago

已经设置了FP16,在运行的时候怎么指定device为 'MYRIAD'呢,在哪里可以选择设备。

syyxsxx commented 3 years ago

在哪里可以选择设备。

如果是运行的demo.py的话 python demo.py --device "MYRIAD"指定就可以了 如果是调用的deploy.Predictor 参考 https://github.com/syyxsxx/PaddleX/blob/a65e9a329f16e429673dd8f1f5a40b2aa8d1eb7e/deploy/openvino/python/demo.py#L60