「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战」
欢迎关注我的公众号 [极智视界],获取我的更多笔记分享
大家好,我是极智视界。本教程详细记录了在 ubuntu 上使用 openvino 进行推理的方法。
1、安装 openvino 和 open_model_zoo
可以参考我这篇 《【模型推理】ubuntu 配置和使用 openvino》进行 openvino 的环境配置。
2、典型模型下载
cd open_model_zoo/tools/downloader
## 下载典型模型
./downloader.py --all -j8
完了会生成两个文件夹,intel 和 public,其中 public 中存放了各框架的预训练模型文件(包括 caffe、tf、pytorch、onnx、mxnets),intel 中是经过了 openvino model optimizer 后的对应的模型文件 .xml
、.bin
。
.xml
:表述了网络的拓扑结构.bin
:包含了网络的权重和偏置
3、模型优化
第2步中下载的 intel/* 中的是直接给你用的优化好的模型文件,那么如果手上只有预训练模型,怎么进行模型优化并生成推理引擎能用的 .xml
和 .bin
呢。以 googlenet 为例,需要这样:
python3 <OPENVINO_DIR>/model_optimizer/mo.py --input_model <models_dir>/public_models/public/googlenet/googlenet.caffemodel --data_type FP32 --output_dir <ir_dir>
执行完后在文件夹 <ir_dir>
里会生成 googlenet-v1.bin
、googlenet-v1.xml
。
4、模型推理
openvino 整个模型推理的逻辑图如下:
在编译 openvino 的时候会同时编译一些 C++ 推理的demo,源码在 openvino/inference-engine/samples
,可以看看,和 TRT 等其他框架的推理流程都差不多。
同样以 googlenet 为例,用分类的 demo 进行测试,如下:
cd <OPENVINO_DIR>/bin/intel64/Release
./classification_sample_async -i <OPENVINO_DIR>/scripts/demo/car.png -m <ir_dir>/googlenet.xml -d CPU
成功执行会生成如下日志:
好了,以上分享了openvino推理实践,希望我的分享能对你的学习有一点帮助。