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

[onnx 学习记录] 包包含的主要内容

使用

import onnx
print(dir(onnx))

可以查看 onnx 包的主要内容,记录
通过 dir(onnx) 所能看到的 所有模块、类和函数。这些内容构成了 ONNX(Open Neural Network Exchange)的核心数据结构、工具函数和模型操作接口。


📘 ONNX 模块组成详解

下面是对这些主要组件的分类与功能介绍:


🔹 1. 核心 Proto 类型(Protobuf 数据结构)

这些是 ONNX 使用 Protocol Buffers 定义的核心数据结构,用于描述模型的各个部分。

名称功能
ModelProto表示整个 ONNX 模型
GraphProto计算图,包含输入、输出、节点、初始化器等
NodeProto图中的一个节点(操作),如 Conv、Relu
TensorProto张量数据(权重、偏置等)
ValueInfoProto输入/输出张量的信息(名称、类型、形状)
FunctionProto自定义函数
OperatorSetIdProto算子集合 ID(版本控制)
OperatorProto算子信息(名字、状态等)
TypeProto类型信息(Tensor, Sequence, Map 等)
SparseTensorProto稀疏张量支持
SequenceProto序列张量
MapProto键值对映射

🔹 2. 属性与配置类

名称功能
AttributeProto节点的属性(如卷积核大小、步长等)
DeviceConfigurationProto设备配置
NodeDeviceConfigurationProto节点级设备配置
ShardingSpecProto, ShardedDimProto, SimpleShardedDimProto分片维度相关(分布式训练)
OptionalProto可选字段支持
IntIntListEntryProto, StringStringEntryProto字典项结构

🔹 3. 常量与版本定义

名称功能
IR_VERSION当前 IR 版本号
IR_VERSION_2017_10_10, IR_VERSION_2024_3_25不同时间点的 IR 版本标记
STABLE, EXPERIMENTAL算子稳定性标志
ONNX_ML标识是否为 ONNX-ML 子集

🔹 4. 主要功能模块

这些是 onnx 提供的主要 Python API 模块或函数。

名称功能
checker验证模型合法性(如 onnx.checker.check_model()
helper辅助构建模型(创建节点、图、模型等)
numpy_helper在 NumPy 数组和 TensorProto 之间转换
load, save加载和保存模型文件
load_model, save_model更高级的模型加载/保存方式
shape_inference推理张量形状(自动推断各层输出形状)
version_converter模型版本转换(升级到新 IR 版本)
external_data_helper处理外部存储的大张量数据
compose组合多个模型或子图
parser, printer解析或打印 ONNX 模型(如文本格式)
utils实用工具函数
mapping数据类型映射表(如 float -> TensorProto.FLOAT)
hubONNX 模型中心相关功能(类似 PyTorch Hub)
convert_model_to_external_data将大模型转为使用外部数据存储

🔹 5. 其他实用工具与内部类

名称功能
_get_serializer, _load_bytes, _save_bytes内部序列化工具
_custom_element_types自定义元素类型支持
_DEFAULT_FORMAT, _SupportedFormat序列化格式设置
__version__获取当前 ONNX 包版本
__doc__, __file__, __name__Python 模块元信息

🔹 6. 实验性或扩展模块

名称功能
subbyte支持 sub-byte 数据压缩
typing类型注解支持
annotations注释信息支持
TrainingInfoProto训练信息记录(如优化器状态)
TensorAnnotation张量注释(调试用)

✅ 示例:常用 API 快速参考

import onnx# 加载模型
model = onnx.load("model.onnx")# 验证模型
onnx.checker.check_model(model)# 查看模型结构
print(onnx.helper.printable_graph(model.graph))# 形状推理
inferred_model = onnx.shape_inference.infer_shapes(model)# 保存修改后的模型
onnx.save(inferred_model, "inferred_model.onnx")

📌 总结

类别关键组件用途
数据结构ModelProto, GraphProto, NodeProto, TensorProto构建模型结构
工具函数helper, numpy_helper, checker创建、验证、转换模型
模型处理load, save, shape_inference, version_converter加载、保存、推理形状、版本迁移
扩展支持external_data_helper, subbyte, hub大模型支持、压缩、模型分发

http://www.xdnf.cn/news/9127.html

相关文章:

  • Redisson分布式锁原理
  • 提升系统性能:Windows绿色版管理工具的实用指南
  • 红海云荣膺2025人力资源科技影响力品牌30强
  • IPD流程落地:项目任务书Charter开发
  • (2025.05)ubuntu20.04运行Mono-gs记录
  • android实现使用RecyclerView详细
  • 大模型微调(4):使用 AutoClass 管理 Tokenizer 和 Model
  • 航电系统之协同坐标技术篇
  • iOS 响应者链详解
  • 开发规范-Restful风格、Apifox安装与使用
  • 一、奋斗类(事业奋斗/梦想实现)
  • 三栏布局实现
  • 56页 @《人工智能生命体 新启点》中國龍 原创连载
  • 修改 K8S Service 资源类型 NodePort 的端口范围
  • Java Swing 自定义JOptionPane
  • Python面试1
  • 传输线上的信号速度与阻抗无关,主要由频率决定
  • leetcode:2160. 拆分数位后四位数字的最小和(python3解法,数学相关算法题)
  • OceanBase数据库全面解析(数据定义篇DDL)
  • numpy与matplotlib学习——数据可视化入门
  • 2025密云马拉松复盘
  • 如何实现 C/C++ 与 Python 的通信
  • sqli-labs第二十七关——Trick with selectunion
  • AI时代新词-AI芯片(AI - Specific Chip)
  • 大模型量化原理
  • vue + ant-design + xlsx 实现表格导出进度提示功能
  • 【JSON-To-Video】JSON转视频教程,快速添加配音与字幕!
  • 【Java】异常处理
  • 【C++初阶】模拟实现string(二):swap优化与写时拷贝机制
  • 知识宇宙-职业篇:互联网产品经理PM