OpenVINO加载face-detection-0105模型时Xeon CPU报错求助
问题详情
- 硬件配置:Intel Xeon CPU E5-2620 v4、16GB内存
- 操作系统:Windows Server 2016
- OpenVINO版本:2020.4
- 涉事模型:face-detection-0105(已测试FP16、FP32、INT8三种精度变体)
- 报错堆栈:
Traceback (most recent call last): File "face_detection.py", line 233, in sys.exit(main() or 0) File "face_detection.py", line 79, in main exec_net = ie.load_network(network=net, num_requests=2, device_name=args.device) File "ie_api.pyx", line 314, in openvino.inference_engine.ie_api.IECore.load_network File "ie_api.pyx", line 323, in openvino.inference_engine.ie_api.IECore.load_network RuntimeError: Supported primitive descriptors list is empty for node: 381/variance/Fused_Add_
该模型可正常运行在Intel酷睿系列处理器、树莓派4、NCS-1及NCS-2设备上。
解决建议
- 加载CPU指令集扩展库
Xeon E5-2620 v4仅支持AVX2指令集,OpenVINO 2020.4部分算子需要依赖对应指令集的扩展才能运行。Windows平台下,找到OpenVINO安装目录中的cpu_extension_avx2.dll(路径通常为openvino/inference_engine/lib/intel64/cpu_extension_avx2.dll),在加载模型前添加扩展:
from openvino.inference_engine import IECore ie = IECore() ie.add_extension("cpu_extension_avx2.dll", "CPU") exec_net = ie.load_network(network=net, num_requests=2, device_name="CPU")
升级OpenVINO版本
2020.4版本存在部分老旧算子适配问题,后续版本对Xeon系列CPU的兼容性有明显优化。建议升级至2022.x或更高稳定版本,重新测试模型运行。重新转换模型
使用目标OpenVINO版本的Model Optimizer重新转换face-detection-0105模型,转换时可指定输入形状避免动态维度导致的算子适配错误,示例命令:
mo --input_model face-detection-0105.xml --input_shape [1,3,384,672]
- 调整设备运行配置
加载模型时添加CPU性能相关配置参数,帮助框架适配硬件:
exec_net = ie.load_network( network=net, num_requests=2, device_name="CPU", config={"CPU_THROUGHPUT_STREAMS": "CPU_THROUGHPUT_AUTO"} )
内容的提问来源于stack exchange,提问作者Pradyumn Pathak
相关产品推荐
相关产品推荐

