OpenVINO Toolkit

深度学习部署工具包
授权协议 Apache-2.0
开发语言 C/C++ Python SHELL
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 丌官浩旷
操作系统 Linux
开源组织
适用人群 未知
 软件概览

OpenVINO Toolkit-prc —— 深度学习部署工具包(Deep Learning Deployment Toolkit )。

工具包简介

为了方便国内开发者的使用,我们在码云平台部署了openvinotoolkit-prc项目相关工具包镜像,包括OpenVINO, open_model_zoo, DLStreamer_gst, model_server, NNCF_pytorch, Training_extensions, CVAT, Datumaro, Docker_ci等9个相关的仓库。(参见链接)[https://gitee.com/openvinotoolkit-prc]

OpenVINO

OpenVINO是英特尔基于自身现有的硬件平台开发的一款可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,主要包括两个组件:模型优化器和推理引擎,以及CPU,GPU和异构插件,以加速在英特尔CPU和英特尔Processor Graphics上的深度学习推理。它支持Open Model Zoo中的预训练模型,以及100多种流行的格式(例如Caffe,TensorFlow,MXNet和ONNX的开源和公共模型。

Open_model_zoo

Open_model_zoo包括优化的深度学习模型和一些Demos,以加快高性能深度学习推理应用程序的开发。使用这些免费的预训练模型,而不是训练自己的模型,以加快开发和生产部署过程。 主要组件:

  • 预训练模型
  • 公开模型说明
  • 模型下载器和其他自动化工具
  • 通过Deep Learning Deployment Toolkit演示模型用法的Demos
  • 用于模型准确性验证的Accuracy Checker工具

Dlstreamer_gst

该仓库是DL Streamer的宿主。DL Streamer是基于GStreamer多媒体框架的流媒体分析框架,用于创建复杂的媒体分析管道。它可确保流水线互操作性,并使用跨英特尔架构CPU、iGPU和英特尔Movidius的OpenVINO Toolkit推理引擎后端的英特尔发行版提供优化的媒体和推理操作。DL Streamer预构建的二进制文件可以与OpenVINO工具包的英特尔发行版一起安装。

Model Server

OpenVINO Model Server 是可扩展的高性能解决方案,用于服务针对英特尔架构优化的机器学习模型。该服务器通过gRPC(Remote Procedure Calls)端点或REST API提供推理服务--使用与TensorFlow相同的体系结构轻松部署新算法和AI实验,从而为OpenVINO支持的框架中训练的任何模型提供服务。

使用gRPC接口库或falcon REST API框架将服务器实现为python服务,并使用TensorFlow和OpenVINO作为推理执行提供程序对数据进行序列化和反序列化。模型存储库可以驻留在本地可访问文件系统(例如NFS),Google Cloud Storage (GCS), Amazon S3 or MinIO.

一些主要功能:

  • 支持多种框架。提供以通用的格式(例如Caffe *,TensorFlow *,MXNet *和ONNX *)训练的模型。
  • 部署新的模型版本,而无需更改客户端代码。
  • 支持AI加速器,包括Intel Movidius Myriad VPU。可以在Bare Metal Hosts或 Docker容器中启用服务器。
  • Kubernetes部署。该服务器可以部署在Kubernetes集群中,从而允许推理服务水平扩展并确保高可用性。
  • Sagemaker集成。该服务器支持使用AWS SageMaker容器来提供推理执行。
  • 支持多员工配置和并行推理执行。
  • 模型重塑。服务器支持在运行时重塑模型。

Nncf_pytorch

Nncf_pytorch全称Neural Network Compression Framework,该神经网络压缩框架包含基于PyTorch的框架和用于神经网络压缩的样本。它以Python的形式组织,可以在独立模式下构建和使用。框架架构是统一的,可以轻松添加不同的压缩方法。

它的主要特征有:

  • 在模型微调过程中应用的各种压缩算法的支持,以实现最佳压缩参数和精度:
  • 量化
  • 二值化
  • 稀疏性
  • 过滤修剪
  • 自动,可配置的模型图转换以获得压缩模型。源模型由自定义类包装,并且在图形中插入了其他特定于压缩的图层。
  • 压缩方法的通用接口
  • GPU加速层可加快压缩模型的微调
  • 分布式训练支持
  • 每个受支持的压缩算法的配置文件示例。
  • 适用于著名第三方存储库(mmdetection,havingface-transformers)的Git补丁,展示了将NNCF集成到自定义训练管道中的过程
  • 将压缩模型导出到ONNX检查点,以供OpenVINO™工具包使用。

基本的工作流程: 是加载一个JSON配置脚本,其中包含特定于NNCF的参数,这些参数确定要应用于模型的压缩,然后将模型与配置脚本一起传递给nncf.create_compressed_model函数。此函数返回一个包装好的模型,可以进行压缩微调,并处理该对象,从而可以在训练过程中控制压缩。

Training_extensions

OpenVINO训练扩展为训练深度学习模型提供了一个便利的环境,并使用OpenVINO工具包对其进行了转换以优化推理

CVAT

CVAT全称Computer Vision Annotation Tool,是用于计算机视觉的免费、在线、交互式视频和图像注释工具。

Datumaro

Datumaro全称Dataset Management Framework,是一个数据集管理框架,用于构建,转换和分析数据集的框架和CLI工具,它的安装依赖于python环境。

主要可以做以下几方面的工作:

  • 数据集在任何方向上的读取,写入,转换。支持的数据集有:COCO、PASCAL VOC、YOLO、TF Detection API、MOT sequences、MOTS PNG、CVAT、LabelMe。
  • 数据集的构建
  • 数据集质量检查
  • 数据集的比较
  • 数据集统计
  • 模型整合

关系图如下: 20201024231546

Docker_ci

Docker_ci全称DockerHub CI,该框架可以使用OpenVINO工具包生成Dockerfile、构建、测试和部署镜像。我们可以添加图层并根据需要自定义OpenVINO™的图像,还可以重用可用的Dockerfile。它支持在Linux和Windows的容器中使用OpenVINO手动构建Docker的镜像。需要强调的一点是,容器内的OpenVINO工具包与本地安装在主机上的OpenVINO工具包是相同的,所以官方文档同样适用于Docker版本的OpenVINO。

 
 相关资料
  • 主要内容 课程列表 专项课程学习 辅助课程 论文专区 课程列表 课程 机构 参考书 Notes等其他资料 卷积神经网络视觉识别 Stanford 暂无 链接 神经网络 Tweet 暂无 链接 深度学习用于自然语言处理 Stanford 暂无 链接 自然语言处理 Speech and Language Processing 链接 专项课程学习 下述的课程都是公认的最好的在线学习资料,侧重点不同,但推

  • Google Cloud Platform 推出了一个 Learn TensorFlow and deep learning, without a Ph.D. 的教程,介绍了如何基于 Tensorflow 实现 CNN 和 RNN,链接在 这里。 Youtube Slide1 Slide2 Sample Code

  • 现在开始学深度学习。在这部分讲义中,我们要简单介绍神经网络,讨论一下向量化以及利用反向传播(backpropagation)来训练神经网络。 1 神经网络(Neural Networks) 我们将慢慢的从一个小问题开始一步一步的构建一个神经网络。回忆一下本课程最开始的时就见到的那个房价预测问题:给定房屋的面积,我们要预测其价格。 在之前的章节中,我们学到的方法是在数据图像中拟合一条直线。现在咱们不

  • 深度学习的总体来讲分三层,输入层,隐藏层和输出层。如下图: 但是中间的隐藏层可以是多层,所以叫深度神经网络,中间的隐藏层可以有多种形式,就构成了各种不同的神经网络模型。这部分主要介绍各种常见的神经网络层。在熟悉这些常见的层后,一个神经网络其实就是各种不同层的组合。后边介绍主要基于keras的文档进行组织介绍。

  • Python 是一种通用的高级编程语言,广泛用于数据科学和生成深度学习算法。这个简短的教程介绍了 Python 及其库,如 Numpy,Scipy,Pandas,Matplotlib,像 Theano,TensorFlow,Keras 这样的框架。

  • 你拿起这本书的时候,可能已经知道深度学习近年来在人工智能领域所取得的非凡进展。在图像识别和语音转录的任务上,五年前的模型还几乎无法使用,如今的模型的表现已经超越了人类。

  • 主要内容:机器学习,深度学习,机器学习与深度学习的区别,机器学习和深度学习的应用人工智能是近几年来最流行的趋势之一。机器学习和深度学习构成了人工智能。下面显示的维恩图解释了机器学习和深度学习的关系 - 机器学习 机器学习是让计算机按照设计和编程的算法行事的科学艺术。许多研究人员认为机器学习是实现人类AI的最佳方式。机器学习包括以下类型的模式 - 监督学习模式 无监督学习模式 深度学习 深度学习是机器学习的一个子领域,其中有关算法的灵感来自大脑的结构和功能,称为人工神经网络。

  • 主要内容:数据量,硬件依赖,特色工程在本章中,我们将讨论机器和深度学习概念之间的主要区别。 数据量 机器学习使用不同数量的数据,主要用于少量数据。另一方面,如果数据量迅速增加,深度学习可以有效地工作。下图描绘了机器学习和深度学习在数据量方面的工作 - 硬件依赖 与传统的机器学习算法相反,深度学习算法设计为在很大程度上依赖于高端机器。深度学习算法执行大量矩阵乘法运算,这需要巨大的硬件支持。 特色工程 特征工程是将领域知识放入指定特征的