解决办法
在OpenVINO的2019版本中,一般在使用OpenVINO进行推理的时候,如果你使用的是CPU来运行神经网络的话,需要使用cpu_extension.dll,而这个dll不是安装OpenVINO之后就可以直接获得的。需要经过编译等操作。
具体来说,对于Windows系统而言,比如2019的某个版本:
第一步:先运行C:\Program Files
(x86)\IntelSWTools\openvino_2019.1.148\bin文件夹下的setupvars.bat,再运行C:\Program Files
(x86)\IntelSWTools\openvino_2019.1.148\inference_engine\samples文件夹下的build_samples_msvc.bat,如下图所示:
之后在
在C:\Users\43363\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release 文件夹下 可以找到cpu_extension.lib 和 cpu_extension.dll
但是,如果你用2020的版本话,你会发现,按照上述步骤操作完之后,在对应的文件夹下也没有cpu_extension.dll文件。对此,英特尔官方给出了这样的解释:
CPU extensions library was removed. Extensions were moved into the plugin.
原来在2020版本,cpu扩展文件被移出了,那该怎么办呢?答案就是不需要再写那个语句了。我们举个例子。
2019版本:
cpu_extension_lib = "C:/Program Files (x86)/IntelSWTools/openvino_2019.2.275/inference_engine/bin/intel64/Release/cpu_extension.dll"
#加载CPU插件扩展库
if cpu_extension_lib and 'CPU' in DEVICE:
ie.add_extension(cpu_extension_lib, "CPU")
# 之后再写其他语句
而对于2020版本而言,我们不需要再写cpu_extension的判断和加载语句,直接写加载网络的语句就可以了。也就是说,代码基本是不需要变化的,只是不需要再写上面的那个2019版本的语句就行了。直接就可以用CPU进行推理。
关于VPU,因为我没有试过,不知道会不会还需要再写别的什么语句。
参考资料
[1] Windows10下使用OpenVINO需要手动编译cpu_extension.lib
[2] Release Notes for Intel® Distribution of OpenVINO™ toolkit 2020
[3] OpenVino: Confusion with CPU extension
via https://www.it610.com/article/1279166420386594816.htm