-
Notifications
You must be signed in to change notification settings - Fork 57
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial readme for the IR. Describes the file structure.
- Loading branch information
1 parent
2824bc8
commit 7a30f37
Showing
2 changed files
with
22 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# ONNX IR | ||
|
||
An in-memory IR that supports the full ONNX spec, designed for graph construction, analysis and transformation. | ||
|
||
## 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. | ||
|
||
## Code Organization 🗺️ | ||
|
||
- [`_protocols.py`](_protocols.py): Interfaces defined for all entities in the IR. | ||
- [`_core.py`](_core.py): Implementation of the core entities in the IR, including `Model`, `Graph`, `Node`, `Value`, and others. | ||
- [`_enums.py`](_enums.py): Definition of the type enums that correspond to the `DataType` and `AttributeType` in `onnx.proto`. | ||
- [`_name_authority.py`](_name_authority.py): The authority for giving names to entities in the graph, used internally. | ||
- [`_linked_list.py`](_linked_list.py): The data structure as the node container in the graph that supports robust iteration and mutation. Internal. | ||
- [`_metadata.py`](_metadata.py): Metadata store for all entities in the IR. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters