OpenVino 2023.0学习使用(1)-简介

news2024/11/15 17:01:25

 模型制备

每一个深度学习工作流程都是从获取模型开始的。您可以选择准备一个自定义的网络,使用现成的解决方案并根据您的需求进行调整,甚至可以从在线数据库下载并运行预先训练的网络,例如TensorFlow Hub,Hugging Face,Torchvision模型。

OpenVINO™支持多种模型格式,并允许将它们转换为自己的openvino.runtime.Model(ov.Model),提供了专用于此任务的工具。

有几个选项可以将模型从原始框架转换为OpenVINO模型格式(ov.Model)。

read_model()方法从文件中读取模型并生成ov.Model。如果文件是支持的原始框架文件格式之一,则会自动转换为OpenVINO中间表示。如果文件已经是OpenVINO IR格式,它将“按原样”读取,而不涉及任何转换。ov.Model可以使用ov.serialize()方法序列化为IR。可以使用应用后训练量化方法的神经网络压缩框架(NNCF)来进一步优化序列化IR。

Python中转换模型

模型转换API,具体来说就是mo.convert_model()方法将原框架的模型转换为ov.Modelmo.convert_model()返回内存中的ov.Model对象,因此不需要read_model()方法。结果ov.Model可以在相同的训练环境(python脚本或Jupiter Notebook)中推断出来。mo.convert_model()提供了一种方便的方法,可以在推理应用程序中快速从基于框架的代码切换到基于OpenVINO的代码。除了模型文件之外,mo.convert_model()还可以直接使用Python构建OpenVINO扩展对象,以便更轻松地转换OpenVINO中不支持的操作。mo.convert_model()方法也有一组参数来切割模型,设置输入形状或布局,添加预处理等。

 转换模型 mo 命令行工具

转换模型的另一个选择是使用mo命令行工具。mo是一种跨平台工具,可促进训练和部署环境之间的转换,执行静态模型分析,并调整深度学习模型,以便在与mo.convert_model方法相同的端点目标设备上实现最佳执行。

mo需要使用预训练的深度学习模型,支持以下格式之一:TensorFlow、TensorFlow Lite、PaddlePaddle或ONNX。mo将模型转换为OpenVINO中间表示格式(IR),需要使用ov.read_model()方法读取。然后,您可以使用OpenVINO™ Runtime编译和推断ov.Model

下图展示了部署经过训练的深度学习模型的典型工作流程:

其中IR是描述模型的一对文件:

  • .xml -描述网络拓扑。

  • .bin -包含权重和偏置二进制数据。

来自ONNX、PaddlePaddle、TensorFlow和TensorFlow Lite的模型文件(不是Python对象)(请查看TensorFlow前端功能和限制)不需要单独的模型转换步骤,即mo.convert_model。OpenVINO提供了C++和Python API,可以直接通过调用read_model方法将模型导入OpenVINO Runtime。

上述momo.convert_model()转换方法的结果相同。你可以选择其中一个,这取决于什么是最适合你。请记住,如果使用相同的参数集,模型转换的结果不应有任何差异。

支持的模型格式

OpenVINO IR(中间表示)-OpenVINO™的专有格式,受益于其全部功能。

ONNX、PaddlePaddle、TensorFlow、TensorFlow Lite -直接支持的格式,这意味着它们可以与 OpenVINO Runtime无需任何预先转换。有关如何在ONNX、PaddlePaddle或TensorFlow上运行推理的指南, 了解如何将OpenVINO™与您的应用程序集成。

MXNet、Caffe、Kaldi -间接支持的格式,这意味着它们需要在运行推理之前转换为OpenVINO IR。转换使用模型转换API完成,在某些情况下可能涉及中间步骤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门:类和对象(中)

目录 前言: 一:类的6个默认成员函数 二:构造函数(第一个成员) (1)概念 (2)特性 (3)特性的解析 ⭐特性4 ⭐特性5 ⭐特性6 ⭐特性7 三:初始化列表 (1)引入 (2)概念 (3)注意 四:析构函数(第二个成员) …

2023年软件测试的高薪机会在哪?

没入行或已经入行测试的小伙伴们,快看过来。来看看你们的高薪机会在哪里! 我们先来看几个高薪招聘需求! 高薪招聘需求1 要求看起来不是很高,应届生和在校生都可以,而且薪资达到了12K,14薪。 但是&#xff0…

roop 一张图片就能生成换脸视频的开源项目

roop的github地址:https://github.com/s0md3v/roop 安装python(pip如果需要也安装) 记住到 2023-6-18 这天 一定要是python3的10版本,11版本会有包不兼容,我就这个问题耗费了一天。 我使用的是:python3.1…

图的单源最短路算法:Bellman-Ford

Bell-Ford算法思想 对一个点的松弛操作,就是找到经过这个点的另外一条路径(多走一条边),使得花费的代价更小。 如果一个图没有负权环,从一点到另外一点的最短路径,最多经过所有的V个顶点,有V-1…

微信代加什么意思

微信代加什么意思,信息流加粉推广怎么做,信息流怎么做加粉推广?信息流微信加粉#信息流代运营#信息流推广#加粉引流推广#抖音引流推广#信息流加粉链路#抖音#百收助推 近期有客户问信息流微信加粉怎么做? 嗯,首先说一下…

开箱即用的shell脚本(一)

目录 一、通过位置变量创建 Linux 系统账户及密码 二、初始化脚本 三、nginx启动脚本 四、每周 5 使用 tar 命令备份/var/log 下的所有日志文件 五、实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M时,发送报警邮件给 …

C语言之动态内存分配(1)

目录 本章重点 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 几个经典的笔试题 柔性数组 动态内存管理—自己维护自己的内存空间的大小 首先我们申请一个变量,再申请一个数组 这是我们目前知道的向内存申请…

【小沐学Python】Python实现Web服务器(Flask,gevent )

文章目录 1、简介1.1 功能列表1.2 支持平台1.3 安装 2、gevent入门示例2.1 文件IO2.2 MySQL2.3 redis2.4 time2.5 requests2.6 socket2.7 并发抓取文字2.8 并发抓取图片2.9 生产者 - 消费者 3、gevent其他示例3.1 StreamServer3.2 WSGI server3.3 flask3.4 websocket3.5 udp 结…

LeetCode 1254. 统计封闭岛屿的数目

【LetMeFly】1254.统计封闭岛屿的数目 力扣题目链接:https://leetcode.cn/problems/number-of-closed-islands/ 二维矩阵 grid 由 0 (土地)和 1 (水)组成。岛是由最大的4个方向连通的 0 组成的群,封闭岛是…

Spark-核心常见面试题集锦(RDD、shuffle类型、数据倾斜优化、小文件问题、性能调优、streaming流程、checkpoint机制)

1 Spark的任务执行流程 第一种standalone模式 整体:driver中有sparkcontext,RDD DAG和DAGScheduler和taskscheduler,master是资源管理,worker中executor,executor中有多个task 构建一个application环境,d…

在线查看EventBus源代码

github:/src/org/greenrobot/eventbus/ 例如:EventBus.java

【LeetCode】HOT 100(15)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

024.【链表算法】

1. 创建单向链表 例如,有“学生”这样一个链表,链表中需要包括学生的姓名、性别、学号等一些基本信息。创建这样的一个链表,链表里面包括多个学生的信息。 可以看出,“学生一”的尾结点“next”指向了下一个“学生二”的头结点学…

【并发编程】创建线程的三种方法

源码 Runnable 函数式接口 package java.lang; FunctionalInterface public interface Runnable { public abstract void run(); }Thread 就是一个典型的静态代理模式 public class Thread implements Runnable {private Runnable target;public Thread() { in…

接口测试用例如何编写?

目录 前言: 在开始编写接口测试用例之前,需要注意几件事: 编写接口测试用例的步骤包括: 常遇到的问题包括: 前言: 编写接口测试用例是接口测试的重要一环。好的接口测试用例能够充分覆盖接口各种情况&…

jmeter负载测试中如何找到最大并发用户数(实战)

目录 前言 负载测试概念 脚本总体设计: 场景介绍: 前言 在进行负载测试时,找到最大并发用户数是非常重要的,这个值将会告诉您系统可以承受多大的并发请求。 在性能测试中,当我们接到项目任务时,很多时…

热烈Matplotlib子图不不会画来看看-分图绘制(怒肝万字)

👨🏻‍🎓博主介绍:大家好,我是大锤爱编程的博客_CSDN博客-大数据,Go,数据分析领域博主,有五年的数据开开发,有着丰富的数仓搭建、数据分析经验。我会在我的系列文章里面分享我学到的知识&#x…

计算机服务器中了encrypted勒索病毒怎么办,什么是encrypted勒索病毒

Encrypted勒索病毒是一种非常危险的电脑病毒,该病毒通过加密计算机中的文件和数据,使其无法访问和使用计算机,并要求受害者支付一定的赎金以获得解密密钥。 Encrypted勒索病毒是一种常见的勒索软件,由于它使用先进的加密技术&…

ansible的部署和模块

一、 ansible 的概述 1、ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。 它使用SSH来和节点进行通信。Ansible基于 …

【OpenCV DNN】Flask 视频监控目标检测教程 09

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 09 3.9 OpenCVFlask多线程处理实时监控人脸识别新建 Flask 项目 cvFlask09Python程序文件视频流的网页模板程序运行 本系列从零开始,详细讲解使用 Flask 框架…