onnx/ir-py

Efficient in-memory representation for ONNX, in Python

Python

50

340 commits

updated Oct 12, 2026

See the code

README

ONNX IR

PyPI - Version Ruff codecov PyPI Downloads

An in-memory IR that supports the full ONNX spec, designed for graph construction, analysis and transformation.

Getting Started

onnx-ir documentation

Installation

Via pip:

pip install onnx-ir

Or from source:

pip install git+https://github.com/onnx/ir-py.git

Features ✨

  • Full ONNX spec support: all valid models representable by ONNX protobuf, and a subset of invalid models (so you can load and fix them).
  • Low memory footprint: mmap'ed external tensors; unified interface for ONNX TensorProto, Numpy arrays and PyTorch Tensors etc. No tensor size limitation. Zero copies.
  • Straightforward access patterns: Access value information and traverse the graph topology at ease.
  • Robust mutation: Create as many iterators as you like on the graph while mutating it.
  • Speed: Performant graph manipulation, serialization/deserialization to Protobuf.
  • Pythonic and familiar APIs: Classes define Pythonic apis and still map to ONNX protobuf concepts in an intuitive way.
  • No protobuf dependency: The IR does not require protobuf once the model is converted to the IR representation, decoupling from the serialization format.

Concept Diagram

Concept Diagram

Code Organization 🗺️

  • _protocols.py: Interfaces defined for all entities in the IR.
  • _core.py: Implementation of the core entities in the IR, including Model, Graph, Node, Value, and others.
  • _enums.py: Definition of the type enums that correspond to the DataType and AttributeType in onnx.proto.
  • _name_authority.py: The authority for giving names to entities in the graph, used internally.
  • _linked_list.py: The data structure as the node container in the graph that supports robust iteration and mutation. Internal.
  • _metadata.py: Metadata store for all entities in the IR.
compilation
computation-graph
graph-transformation
intermediate-representation
large-language-models
machine-learning
model-optimization
onnx

onnx/ir-py

Efficient in-memory representation for ONNX, in Python

Python

50

340 commits

updated Oct 12, 2026

See the code

README

ONNX IR

PyPI - Version Ruff codecov PyPI Downloads

An in-memory IR that supports the full ONNX spec, designed for graph construction, analysis and transformation.

Getting Started

onnx-ir documentation

Installation

Via pip:

pip install onnx-ir

Or from source:

pip install git+https://github.com/onnx/ir-py.git

Features ✨

  • Full ONNX spec support: all valid models representable by ONNX protobuf, and a subset of invalid models (so you can load and fix them).
  • Low memory footprint: mmap'ed external tensors; unified interface for ONNX TensorProto, Numpy arrays and PyTorch Tensors etc. No tensor size limitation. Zero copies.
  • Straightforward access patterns: Access value information and traverse the graph topology at ease.
  • Robust mutation: Create as many iterators as you like on the graph while mutating it.
  • Speed: Performant graph manipulation, serialization/deserialization to Protobuf.
  • Pythonic and familiar APIs: Classes define Pythonic apis and still map to ONNX protobuf concepts in an intuitive way.
  • No protobuf dependency: The IR does not require protobuf once the model is converted to the IR representation, decoupling from the serialization format.

Concept Diagram

Concept Diagram

Code Organization 🗺️

  • _protocols.py: Interfaces defined for all entities in the IR.
  • _core.py: Implementation of the core entities in the IR, including Model, Graph, Node, Value, and others.
  • _enums.py: Definition of the type enums that correspond to the DataType and AttributeType in onnx.proto.
  • _name_authority.py: The authority for giving names to entities in the graph, used internally.
  • _linked_list.py: The data structure as the node container in the graph that supports robust iteration and mutation. Internal.
  • _metadata.py: Metadata store for all entities in the IR.
compilation
computation-graph
graph-transformation
intermediate-representation
large-language-models
machine-learning
model-optimization
onnx

Project health

Overall

7.6/10

Maintained

10/10

Code review

10/10

Contributors

10/10
OpenSSF Scorecard

Latest release

1.0.0 · Aug 11, 2026

Releases this year

9

Significant stargazers

Raphael Sourty

245 followers · starred May 2025

Bart Leusink

11 followers · starred Mar 2026

Christian Bourjau

60 followers · starred May 2025