OpenVINO是什么?其实按照我的研究来看,就是一个底层的计算平台,可以驱动的硬件是Intel家的硬件,其实这几年一说深度运算就是英伟达家的显卡一马当先,诚然很好,但是这个独立显卡不是每个机器都有的,即使有也不见得就可以支持CUDA(只要是这个东西),而且档次低的显卡跑起来也不尽人意。但是CPU不一样,现在处理器的份额几乎都是Intel家的,而且几乎是都加有集成显卡。深度学习本质来说还是计算任务,只不过是数据海量,自带并行运算的特性而已。所以是计算任务就可以使用CPU运算,再不济还不是有个集成显卡嘛,拿它跑。这里就说明了一种深度运算的普适性。
其中可以支持什么硬件,可以看我下面的图:
6-12代的CPU,其实这里有个小的限制,它还是需要你CPU上面集成显卡芯片。所以技术的实现都是一样的,只不过是换个名字而已哦。当然了我们的VPU2也是可以跑的呢~就是一代就不可以了,不过有专门的计算包,如果我有硬件我也hi可以写的。
下面我就写一下我自己机器的问题:我的CPU是 i7-6600U
https://ark.intel.com/content/www/us/en/ark/products/88192/intel-core-i76600u-processor-4m-cache-up-to-3-40-ghz.html
位置在此:
14nm的工艺
看这个地方,有HD520的显卡
拿基于上面CPU和IGPU可以进行计算的想法,来思考一下。Intel究竟做了什么来完成这个想法呢?
它推出了一个开源的计算包:
OpenVINO™ 是一个用于优化和部署 AI 推理的开源工具包。
在计算机视觉、自动语音识别、自然语言处理和其他常见任务中提升深度学习性能
使用通过 TensorFlow、PyTorch 等流行框架训练的模型
减少资源需求并在从边缘到云的一系列英特尔® 平台上高效部署
这张图几很完美了,上层的模型经过平台转换到底层的硬件平台运行
IGPU指核芯显卡,IGPU异构是指拿核芯显卡来作数学运算的性能。剩下就都能看的懂了~
软件使用三步走:
拿你要训练的模型或者已经打包好但是还没有喂数据的模型
经过OpenViNO的格式转换,优化的等
部署模型
这个OpenVINO是有官方的操作文档的,非常好!下面有:
https://github.com/openvinotoolkit/openvino_notebooks.git
https://github.com/openvinotoolkit/open_model_zoo
其实这里面涉及很多的事情,比如第一步,我们市面的深度框架有很多,各家的模型格式都不兼容怎么办?
两个方案:
各家遵循一个通用格式
通过一个“强大”的转换器,转换到一个通用的格式
其实已经有了方案:
ONNX 提供了可扩展计算图模型的定义,以及内置运算符和标准数据类型的定义。
每个计算数据流图都被构造为形成无环图的节点列表。节点具有一个或多个输入和一个或多个输出。每个节点都是对操作员的调用。该图还具有元数据以帮助记录其目的、作者等。
运算符在图形外部实现,但内置运算符集可跨框架移植。每个支持 ONNX 的框架都将在适用的数据类型上提供这些运算符的实现。
https://github.com/onnx
当然它也是开源的:
https://onnx.ai/
ONNX
这些是这个项目支持的上层框架,你能认识几个?我们熟悉的都有~这些是构建模型可以使用的平台。
这些是我们可以部署的硬件层,使用旨在加速推理的运行时部署你的 ONNX 模型。
https://github.com/onnx/optimizer
这是提供的一个ONNX的优化工具
下面是三个可视化的工具,训练的时候可视化的调整我们的模型:
https://github.com/lutzroeder/Netron
https://github.com/PaddlePaddle/VisualDL
https://github.com/zetane/viewer
联系客服