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

[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大模型支持、压缩、模型分发

相关文章:

  • 网站开发功能表百度查询入口
  • 动态网站建设简介营销咨询师
  • 武汉快速做网站网络营销整合推广
  • 网站开发专员岗位职责网站推广方法有哪些
  • 做算命网站建站工具
  • 网站改版要重新备案吗郑州网站推广公司咨询
  • python中的时间模块
  • 基于事件驱动型LSTM模型的黄金周收益归因:贸易关税冲击下的5%涨幅量化解析
  • Linux:多线程---初识线程
  • Veeam Backup Replication Console 13 beta 备份 PVE
  • 深入解析Kafka核心参数:buffer_memory、linger_ms与batch_size的优化之道
  • 【基于SpringBoot的图书管理系统】Redis在图书管理系统中的应用:加载和添加图书到Redis,从数据同步到缓存优化
  • 在 Spring Boot 项目中如何合理使用懒加载?
  • Vue 2 混入 (Mixins) 的详细使用指南
  • Vue 3.0中复杂状态如何管理
  • 2025年Google I/O大会上,谷歌展示了一系列旨在提升开发效率与Web体验的全新功能
  • 基于PDF流式渲染的Word文档在线预览技术
  • Qt C++ GUI编程进阶:多窗口交互与事件机制深度解析
  • 基于AOD-Net与GAN的深度学习去雾算法开发
  • 基于机器学习的沪深300指数波动率预测:模型比较与实证分析
  • 【MySQL】分组查询、聚合查询、联合查询
  • Java基础(一):发展史、技术体系与JDK环境配置详解
  • 探索Linux互斥:线程安全与资源共享
  • 字节跳动2025年校招笔试手撕真题教程(三)
  • BGP笔记的基本概要
  • 从零实现智能封面生成器