wangsiyuan06 4 жил өмнө
parent
commit
d822fb841a

+ 28 - 7
deploy/openvino/python/converter.py

@@ -57,15 +57,19 @@ def export_openvino_model(model, args):
         pdx.converter.export_onnx_model(model, onnx_save_file)
     else:
         pdx.converter.export_onnx_model(model, onnx_save_file, 11)
-    
+
     #convert onnx to openvino ir
     try:
         import mo.main as mo
         from mo.utils.cli_parser import get_onnx_cli_parser
-    except:
-        print("ModuleNotFoundError: No module named 'mo'")
-        print("convert failed!please init openvino environment first")
-        print("see https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/openvino/faq.md")
+    except Exception as e:
+        print("convert failed! ", e)
+        print(
+            "if error is 'no module name mo',please init openvino environment first"
+        )
+        print(
+            "see https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/openvino/faq.md"
+        )
     else:
         onnx_parser = get_onnx_cli_parser()
         onnx_parser.add_argument("--model_dir", type=_text_type)
@@ -97,9 +101,26 @@ def main():
     model = pdx.load_model(args.model_dir)
     if model.status == "Normal" or model.status == "Prune":
         print(
-            "Only support inference model, try to export inference model first as below,")
+            "Only support inference model, try to export inference model first as below,"
+        )
+        print(
+            "see https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/openvino/faq.md"
+        )
+
     else:
-        export_openvino_model(model, args)
+        prog = model.test_prog
+        for var in prog.list_vars():
+            if var.name == "image":
+                shape = list(var.shape)
+                if shape[2] == -1 and shape[3] == -1:
+                    print(
+                        "convert failed, please export paddle inference by fixed_input_shape"
+                    )
+                    print(
+                        "see https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/openvino/faq.md"
+                    )
+                else:
+                    export_openvino_model(model, args)
 
 
 if __name__ == "__main__":

+ 15 - 3
docs/deploy/openvino/faq.md

@@ -11,13 +11,13 @@
 ```
 source /opt/intel/openvino_2021/bin/setupvars.sh
 ```
-  
+
 2)非root用户安装,以OpenVINO 2021.1版本、用户名为paddlex为例,运行如下命令即可初始化
-  
+
 ```
 source /home/paddlex/intel/openvino_2021/bin/setupvar.sh
 ```
-  
+
 ### Window系统初始化OpenVINO环境
 以OpenVINO 2021.1版本为例,执行如下命令即可初始化OpenVINO环境  
 
@@ -27,3 +27,15 @@ setupvars.bat
 ```
 
 **说明**:更多初始化OpenVINO环境的细节请参考[OpenVINO官网](https://docs.openvinotoolkit.org/latest/index.html)
+
+
+## Q2提示"convert failed, please export paddle inference by fixed_input_shape"
+原因:该问题是因为在使用paddlex导出inference 模型的时候没有加入--fixed_input_shape参数固定shape  
+解决方案:导出inference 模型的时候加入--fixed_input_shape 参数  
+[导出inference模型参考](https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/export_model.md)
+
+
+## Q3提示""
+原因:paddle模型没有导出inference格式
+解决方案:对模型先导出inference格式,注意导出时需要使用--fixed_input_shape参数固定shape  
+[导出inference模型参考](https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/deploy/export_model.md)