解決辦法
在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