全文字数911,预计阅读4min
一.OpenVINO的由来
通常,由于边缘端的算力和存储比较有限,我们在做模型训练的时候会在云端进行训练。训练完成后我们要在边缘端部署模型,这个时候需要对模型做一些压缩,比如对模型进行剪枝,以及模型量化之类。那么如何确保模型压缩前后的精度不会损失太多,这是我们面临的一个挑战。另外,在云端开发训练模型,在边缘端部署的过程中也会碰到各种各样的问题,比如同样的模型,部署到不同的边缘端,会面临不同软硬件平台兼容性的问题。目前行业中大家都在致力于解决深度学习落地的这些挑战。OpenVINO就是英特尔提出的,用于解决在英特尔的不同硬件平台上部署深度学习的一个统一的解决方案。
二.OpenVINO是什么
OpenVINO是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。
OpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加速高性能计算机视觉和深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。支持Windows、Linux、MAC系统,Python/C++语言。
三. OpenVINO支持的平台
- 支持的操作系统:Windows、Linux、Mac os
- 支持的硬件:凌动、酷睿、至强、Movidius计算棒、FPGA等。
四.OpenVINO有什么优势
- 1.优化模型,提高性能。OpenVINO在模型部署前,首先会对模型进行优化,模型优化器会对模型的拓扑结构进行优化,去掉不需要的层,对相同的运算进行融合、合并以加快运算效率,减少内存拷贝;FP16、INT8量化也可以在保证精度损失很小的前提下减小模型体积,提高模型的性能。
- 2.开发简单。提供了C、C++和python3种语言编程接口。
- 3.部署方便。在Intel的不同硬件平台上进行移植部署很便捷。推理引擎对不同的硬件提供统一的接口,底层实现直接调用硬件指令集的加速库,应用程序开发人员不需要关心底层的硬件实现,即可在不同的硬件平台上加速模型推理。
五.OpenVINO工作流程
六.OpenVINO主要核心组件
-
1.Model Optimizer。它是一种跨平台的命令行工具,可将经过训练的神经网络从其源框架转换为与nGraph兼容的开源中间表示(IR),以进行推理操作。Model Optimizer导入在Caffe、TensorFlow、MXNet、Kaldi和ONNX等流行框架中训练的模型,并进行一些优化以在可能的情况下删除多余的图层并进行分组操作,以形成更简单,更快的图形。如果你的神经网络模型包含不在受支持框架的已知层列表中的层,则可以通过使用
自定义图层
来调整转换和优化过程。 -
2.Inference Engine。它管理优化的神经网络模型的加载和编译,对输入数据进行推理操作并输出结果。Inference Engine可以同步或异步执行,其插件体系结构管理在多个Intel设备上执行编译,包括主力CPU以及专用的图形和视频处理平台。