Onnx以及Onnx runtime

2023-11-05

一、ONNX简介

它是微软和Facebook提出的一种表示深度学习模型的开放格式,定义了一套独立于环境和平台的标准格式。

二、ONNX作用

无论你使用什么样的训练框架来训练模型(比如TensorFlow/Pytorch/OneFlow/Paddle),你都可以在训练后将这些框架的模型统一转为ONNX存储。 ONNX文件不仅存储了神经网络模型的权重,还存储了模型的结构信息、网络中各层的输入输出等一些信息。 实际中将转换后的ONNX模型,转换成我们需要使用不同框架部署的类型,通俗来说ONNX相当于一个翻译。

三、常见使用场景
• Pytorch -> ONNX -> TensorRT
• Pytorch -> ONNX -> TVM
• TF – onnx – ncnn

四、Onnx runtime简介

ONNXRuntime是微软推出的一款推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。可以说ONNXRuntime是对ONNX模型最原生的支持。

虽然大家用ONNX时更多的是作为一个中间表示,从pytorch转到onnx后直接喂到TensorRT或MNN等各种后端框架了= =,但这并不能否认ONNXRuntime是一款非常优秀的推理框架(微软出品,必属精品)。而且由于其自身只包含推理功能(1.2版本,最新的ONNXRuntime甚至已经可以训练,可见微软在其上面的野心还是有的),对比主流框架源码看起来没有那么复杂难懂,通过阅读其源码可以非常清晰的理解深度学习框架的一些核心功能原理(op注册,内存管理,运行逻辑等)。接下来的一系列文章尝试对ONNXRuntime的源码进行阅读学习,对理解深度学习框架的工作原理还是很有帮助的。

参考博文:

  1. https://zhuanlan.zhihu.com/p/346544539
  2. https://blog.csdn.net/m0_46579823/article/details/127889230
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Onnx以及Onnx runtime 的相关文章

随机推荐

  • npm、pnpm、yarn的常用命令

    npm pnpm yarn的常用命令 文章目录 npm pnpm yarn的常用命令 一 常用命令 1 npm命令 2 pnpm命令 3 yarn命令 二 对比 一 常用命令 1 npm命令 npm init 初始化一个新的npm包 npm
  • 第12章 图形用户界面基础

    1 Swing和AWT的不同 AWT适合开发简单的图形用户界面 但不适合开发复杂的GUI项目 也容易发生于特定平台相关的故障 重量级组件 SWing更稳定 更通用 更灵活 不依赖于自己GUI 轻量级组件 SWing GUI组件类都以字母J为
  • EasyCHM编译的文件在点击节点时出现错误:确保Web地址//ieframe.dll/dnserrordiagoff.htm#正确

    EasyCHM编译后的文件打开时出现错误提示 解决方案 一 mht文件的文件名及路径中不能包含中文 二 修改节点的属性 检查路径是否正确
  • zookeeper

    1 zookeeper是什么 参考文献 Zookeeper可以干什么 zookeeper为分布式应用程序提供一致性协调服务 包括配置维护 域名服务 分布式锁 集群管理等 配置维护 同一个应用程序在不同服务器上的配置信息相同 将应用程序的配置
  • Android集成bilibili播放器以及弹幕

    考虑到开发直播和视频播放的必要性 网上了解到b站开源播放器 https github com bilibili ijkplayer 好用 集成下试试 运行后发现b站原生的只能播放没有其他选项 考虑到方便性 采用这个方案 https gith
  • Qt modbus使用详解

    不讲理论 只讲应用 看完这篇就能用起来 爽不爽 具体内容目录如下 如需请订阅专栏后观看 目录 一 Modbus协议通信过程 1 1 主机对从机写数据操作 0x06 1 2 主机对从机读数据操作 0x03 1 3 Modbus的CRC校验 二
  • 图的遍历(c语言)

    文章目录 图的遍历 种类 深度优先遍历 算法实现 广度优先遍历 算法实现 图的遍历 概念 图遍历是一种用于在图中搜索顶点的技术 图的遍历也用来决定在搜索过程中访问顶点的顺序 图的遍历可以在不创建循环的情况下找到要在搜索过程中使用的边 这意味
  • HJ92 在字符串中找出连续最长的数字串

    Powered by NEFU AB IN Link 文章目录 HJ92 在字符串中找出连续最长的数字串 题意 思路 代码 HJ92 在字符串中找出连续最长的数字串 题意 输入一个字符串 返回其最长的数字子串 以及其长度 若有多个最长的数字
  • java设计模式-单例模式

    package com hcmony singleton h3 单例模式 这种有并发问题 还有很多没有写 h3 p 单例模式 Singleton Pattern 是 Java 中最简单的设计模式之一 这种类型的设计模式属于创建型模式 它提供
  • fastapi与django异步的并发对比

    概述 据说fastapi是目前最快的异步框架 遂决定将其和django异步进行并发比较 先说结果 fastapi的异步可以使整体运行速度非常均衡 不会出现较大波动 但是django会出现大量的波动问题 部分访问速度很快 但是部分访问速度很慢
  • Android — 使用recyclerview+FlexboxLayoutManager实现Tag标签

    如图实现下面流式的tag标签 我们用recyclerview flexboxLayoutManager来实现 重点 FlexboxLayoutManager layoutManager new FlexboxLayoutManager th
  • 查看系统命令

    转载来自 https blog csdn net grgary article details 50975237 Linux下如何查看计算机的配置信息 cpu物理个数 几核 2016年03月24日 21 20 41 GJoker 阅读数 1
  • 【react】虚拟dom和真实dom

    关于虚拟dom 1 本质是Object类型的对象 一般对象 2 虚拟dom比较 轻 真实dom比较 重 因为虚拟dom是react内部在用 无需真实dom上那么多的属性 3 虚拟dom最终会被react转化为真实dom 呈现在页面上
  • Android_异常大全

    java lang NullPointerException 这个异常的解释是 程序遇上了空指针 简单地说就是调用了未经初始化的对象或者是不存在的对象 这个错误经常出现在创建图片 调用数组这些操作中 比如图片未经初始化 或者图片创建时的路径
  • C语言 程序 杨辉三角实现

    9 杨辉三角形 在屏幕上显示杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 问题分析与算法设计 杨辉三角形中的数 正是 x y 的N次方幂展开式各项的系数 本题作为程序设计中具有代表性的题
  • 【推荐】SpringMVC与JSON数据返回及异常处理机制的使用

    艳艳耶 个人主页 个人专栏 推荐 Spring与Mybatis集成整合 生活的理想 为了不断更新自己 1 JSON 在SpringMVC中 JSON数据返回通常是通过使用 ResponseBody 注解将Java对象转换为JSON格式 并直
  • JDBC编程

    程序运行的时候 往往需要存取数据 现代应用程序最基本 也是最广泛的数据存储就是关系数据库 Java为关系数据库定义了一套标准的访问接口 JDBC Java Database Connectivity JDBC简介 在介绍JDBC之前 先简单
  • 软件测试岗:惨不忍睹的阿里三面,幸好做足了准备,已拿30koffer

    三面大概九十分钟 问的东西很全面 需要做充足准备 就是除了概念以外问的有点懵逼了 呜呜呜 回来之后把这些题目做了一个分类并整理出答案 强迫症的我 狂补知识 分为软件测试基础 Python自动化 性能测试 安全测试等 接下来分享一下我的这阿里
  • Unity ECS记录

    参考 What are Blob Assets 参考 Converting scene data to DOTS 参考 unity dots packages 参考 unity entities package documents 前言 我
  • Onnx以及Onnx runtime

    一 ONNX简介 它是微软和Facebook提出的一种表示深度学习模型的开放格式 定义了一套独立于环境和平台的标准格式 二 ONNX作用 无论你使用什么样的训练框架来训练模型 比如TensorFlow Pytorch OneFlow Pad