文章目录
OpenVINO™工具套件实践笔记
OpenVINO™环境安装
踩坑补充
在执行 D:\Program Files (x86)\Intel\openvino_2021\deployment_tools\model_optimizer\install_prerequisites>install_prerequisites.bat
出现
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
mxnet 1.2.1.post1 requires numpy<1.15.0,>=1.8.2, but you'll have numpy 1.19.1 which is incompatible.
mxnet 1.2.1.post1 requires requests<2.19.0,>=2.18.4, but you'll have requests 2.25.1 which is incompatible.
botocore 1.17.48 requires urllib3<1.26,>=1.20; python_version != "3.4", but you'll have urllib3 1.26.8 which is incompatible.
运行即可:
pip install mmdnn --use-feature=2020-resolver
OpenVINO™学习笔记
学习过程中可参考 【OpenVINO中文社区 在B站发布的相关学习教程视频】、【OpenVino官方文档】。
什么是OpenVINO™
OpenVINO™ 是一款 用于高性能、深度学习推理的工具套件 开源工具包。
使用高性能、人工智能和计算机视觉推理,更快更准确地将真实结果产品化,在从边缘到云的英特尔®架构上进行部署。
三大优点
- 高性能、深度学习推理
- 简化开发、易于使用
- 一次编写、任意部署
如何使用
可以分三个步骤进行:
- 构建 Build (Train) 注:OpenVINO™是没有模型训练这个过程的,也就是说首先你得准备好训练的模型
- 优化 Optimize
- 部署 Deploy
如下图所示:
模型优化器 (Model Optimizer)
- 模型转换
- 模型压缩
- 32F/16F
- 模型优化
- INT8量化
分析、量化、 优化拓扑、转换 得到 IR模型
优势和特点
-
一个基于python、跨平台的命令行工具
-
可促进训练和部署环境之间的转换,即将其转为中间表示
-
执行静态模型分析、通过模型拓扑转换优化性能及存储空间
-
硬件无关的优化
⚠注意:
-
模型优化器不推断模型。
-
模型优化器是在推理发生之前运行的离线工具。
推理引擎 (Inference Engine)
- 加载模型
- 加速执行
- 异步与同步
- 多线程支持
优势和特点
- 高层级的 C/C++ 和 python,推理函数接口
- 读取中间表示(IR)、ONNX,并在设备上执行模型
- 使用插件架构,为不同的硬件提供统一接口
- 每个接口类型以动态加载插件的方式实现接口,无需用户实现和维护多个代码路径
如何集成
集成流程: 创建推理引擎核心 – 配置模型的输入和输出 – 将模型加载到设备 – 创建推理请求 – 准备输入 – 开始推理 – 处理推理结果
DL Workbench
深度学习工作台 Deep Learning Workbench。是官方 OpenVINO™ 图形界面,易于预训练深度学习模型的生产。可以方便快捷的帮助我们完成 导入模型、分析其性能和准确性、可视化输出、优化模型 等任务。
用途和优势:
- 可视化拓扑和层的性能数据,以帮助进行模型分析。
- 自动分析最佳性能配置(streams、batches、latency)
- 使用int8或Winograd校准进行实验,以获得最佳调优。
- 通过 accuracy checker 工具提供 accuracy信息
- 可以直接访问 Open Model Zoo 中的模型
DL Streamer
Deep Learning Streamer 用于视频流分析处理。
举例
例: 视频编码解码可以放在GPU上跑,一些图像的预处理可以放在CPU上跑,inference、checking放在视频处理器VPU上运行,从而来提升效率和性能。
优点
- 便于跨英特尔从边缘到云的不同架构创建和部署优化的流媒体分析管道。
- 使用 GStreamer 多媒体框架构建。
加速测试周期和开发的工具
1. Post-training Optimization Tool
- 将模型大小减少为低精度数据类型,如INT8
- 减少模型大小,同时改善延迟
- 度量模型的性能(吞吐量、延迟)
- 获得每层和整体基础的性能指标
- 为部署生成一个最佳的最小化的运行时包
- 与开发包相比,部署占用的空间更小
- 使用已知数据集检查IR模型(原始和转换后)的准确性
5. Model Downloader
- 方便地下载一些公共模型及英特尔预训练模型
实践记录请见下一篇~