当前位置: 首页 > news >正文

onnx基本概念

onnx基本概念

参考

文章目录

  • onnx基本概念
    • Input, Output, Node, Initializer, Attributes
    • Serialization with protobuf
    • 元数据
    • List of available operators and domains
    • 支持的类型
    • Opset版本
    • Subgraphs, tests and loops
    • Extensibility
    • Functions
    • Shape (and Type) Inference
    • tools

ONNX可以类比为专注于数学函数的一个专用变成语言,在这个语言中,定义了机器学习推理过程中所必要的操作。比如,一个线性回归可以描述为:

def onnx_linear_regressor(X):"ONNX code for a linear regression"return onnx.Add(onnx.MatMul(X, coefficients), bias)

也可以使用ONNX图进行表示。

在这里插入图片描述
ONNX的目标是提供一种能够被任意机器学习框架实用的通用语言。利用ONNX,可以独立于构建模型的学习框架实现生产环境的部署。ONNX也实现了以一个运行时ONNXRuntime,但是主要目的是理解和调试以及转换工具,并不是用于生产环境,因为性能不是其目标。

Input, Output, Node, Initializer, Attributes

  • 一个算子,最基本的是包含输入和输出。
  • Node,是计算图的节点
  • initializer是指输入中不变的常量。
  • Attributes是指算子的参数

Serialization with protobuf

利用protobuf实现序列化

元数据

  • doc_string: Human-readable documentation for this model.
    Markdown is allowed.

  • domain: A reverse-DNS name to indicate the model namespace or domain,
    for example, ‘org.onnx’

  • metadata_props: Named metadata as dictionary map<string,string>,
    (values, keys) should be distinct.

  • model_author: A comma-separated list of names,
    The personal name of the author(s) of the model, and/or their organizations.

  • model_license: The well-known name or URL of the license
    under which the model is made available.

  • model_version: The version of the model itself, encoded in an integer.

  • producer_name: The name of the tool used to generate the model.

  • producer_version: The version of the generating tool.

  • training_info: An optional extension that contains

List of available operators and domains

算子列表

算子的域名主要来自ai.onnx以及ai.onnx.ml,同时支持可扩展性,定义自己的算子。

支持的类型

ONNX主要是优化数值计算的tensor,包含三大元素

  • 类型
  • 形状(维度)
  • 连续的存储空间

Opset版本

每个onnx图都绑定一个Opset版本

Subgraphs, tests and loops

ONNX实现了条件判断和训练,这些模块将别的子图作为属性。这些结构通常慢且复杂,应避免使用。

Extensibility

可扩展性,每一个节点都有 type, a name, named inputs and outputs, and attributes. 只要一个节点具有上述要素,就可以添加到计算图中.

Functions

Functions是一种扩展ONNX规范的方法,用于描述一系列算子的组合,方便复用。

Shape (and Type) Inference

ONNX不必要明确的输入输出的shape,但是可以加速推理。

tools

netron是一个很好的可视化工具

相关文章:

  • .gitignore文件忽略的内容不生效问题解决
  • 车载学习:UDS诊断、ECU刷写、OTA升级、Tbox测试、CANoe实操
  • 通过Vue3+高德地图的JS API实现市区地图渲染
  • 知乎号开始运营了,宣传一波
  • 聚焦现代商贸物流愿景 构筑供应链金融服务体系|第二届京津冀现代商贸物流金融创新发展百人大会成功举办
  • Spring Cloud全家桶(上)【Nacos、OpenFeign、LoadBalancer、GateWay、金丝雀灰色发布】
  • vscode字符多行自动增长插件。
  • 百货商场:打造品质生活
  • 2024-06-12 问AI: 在大语言模型中,什么是Jailbreak漏洞?
  • 【C++】模板初级
  • 【韩顺平零基础学java】第15章练习题
  • Redis 5种常用数据类型
  • SaaS产品运营|一文讲清楚为什么ToB产品更适合采用PLG模式?
  • PFA烧杯带把手带刻度1000ml3000mlPFA氟树脂温度范围-270~250℃
  • Java并发编程深度解析:构建高并发应用的实践与探究
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Django 博客开发教程 16 - 统计文章阅读量
  • extjs4学习之配置
  • mockjs让前端开发独立于后端
  • PHP的Ev教程三(Periodic watcher)
  • php的插入排序,通过双层for循环
  • zookeeper系列(七)实战分布式命名服务
  • Zsh 开发指南(第十四篇 文件读写)
  • 初探 Vue 生命周期和钩子函数
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前嗅ForeSpider中数据浏览界面介绍
  • 正则表达式
  • ​【已解决】npm install​卡主不动的情况
  • #HarmonyOS:Web组件的使用
  • $.ajax()
  • (007)XHTML文档之标题——h1~h6
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)换源+apt-get基础配置+搜狗拼音
  • (图)IntelliTrace Tools 跟踪云端程序
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 生成二级域名
  • .net 无限分类
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .netcore如何运行环境安装到Linux服务器
  • .Net多线程总结
  • .net实现客户区延伸至至非客户区
  • .net专家(张羿专栏)
  • /etc/skel 目录作用
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • ?.的用法
  • @RequestMapping 的作用是什么?
  • [04] Android逐帧动画(一)
  • [AI StoryDiffusion] 创造神奇故事,AI漫画大乱斗!
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • [Android]Android开发入门之HelloWorld