OpenVINO2021运行2019版本项目无法导入IEPlugin类的适配方案咨询
OpenVINO 2019项目适配2021版本的修改方案
OpenVINO 2020.2及之后版本正式移除了IENetwork、IEPlugin两个类,统一使用IECore类完成插件初始化、模型加载全流程,对应的修改步骤如下:
- 第一步:调整导入语句
删除原有from openvino.inference_engine import IENetwork, IEPlugin导入,替换为:from openvino.inference_engine import IECore - 第二步:替换插件初始化逻辑
删除原有IEPlugin实例化代码,替换为IECore实例初始化:# 旧代码:plugin = IEPlugin(device=DEVICE, plugin_dirs=plugin_dir) ie = IECore() - 第三步:替换模型加载逻辑
原有IENetwork加载模型的逻辑替换为IECore的read_network方法,模型加载到设备的逻辑同步调整:# 旧代码:net = IENetwork(model=model_xml, weights=model_bin) net = ie.read_network(model=model_xml, weights=model_bin) # 旧代码:exec_net = plugin.load(network=net, num_requests=num_requests) exec_net = ie.load_network(network=net, device_name=DEVICE, num_requests=num_requests) - 第四步:调整CPU扩展加载逻辑(如果项目用到了自定义CPU扩展)
# 旧代码:plugin.add_cpu_extension(cpu_extension_path) ie.add_extension(cpu_extension_path, device_name="CPU")
完整新旧代码对照示例:
# ========== 2019版本旧代码 ========== from openvino.inference_engine import IENetwork, IEPlugin DEVICE = "CPU" plugin = IEPlugin(device=DEVICE, plugin_dirs=None) plugin.add_cpu_extension("./libcpu_extension.so") net = IENetwork(model="person_detection.xml", weights="person_detection.bin") exec_net = plugin.load(network=net, num_requests=2)# ========== 2021版本适配后代码 ========== from openvino.inference_engine import IECore DEVICE = "CPU" ie = IECore() ie.add_extension("./libcpu_extension.so", device_name=DEVICE) net = ie.read_network(model="person_detection.xml", weights="person_detection.bin") exec_net = ie.load_network(network=net, device_name=DEVICE, num_requests=2)
除以上修改外,原有推理请求调用、输入输出张量处理的逻辑不需要调整,可直接复用。
内容的提问来源于stack exchange,提问作者Alonso Cangalaya
相关产品推荐
相关产品推荐

