diyessi / onnx-builder Goto Github PK
View Code? Open in Web Editor NEWPython module for creating onnx files
License: MIT License
Python module for creating onnx files
License: MIT License
Rather than dynamically creating wrappers, have a tool that generates updated python files for the wrappers so tools work.
Maybe grab the schema doc for the wrappers.
Can we use setattr
and getattr
to move more of the op classes into Node
? For example, if we lists of the input names, attribute names, and output names (including info about which inputs/outputs are optional) Node could handle node_input_values
, node_attributes
and node_output_values
making op definition a matter of providing strings, which we may be able to obtain directly from onnx
.
There is no need for separate classes for each op; Node
can have a member that contains node_parameter_descriptors
, node_attributes
and node_value_descriptors
; possibly the onnx schema object for the op could be used directly since the descriptors and attributes are all derived from the schema.
Op constructors would be replaced with factory functions with the same name as the current classes that construct Node
with the schema information object and the factory args -- inputs and attributes. These factory functions could be programmatically constructed from the schema.
Only create one Constant
for a given constant value.
Separate Value
and Node
implementations so Value
0 is no different from any other Value
.
Variadic inputs (like Concat.inputs
) and outputs (like Split.outputs
) need to be accessible.
Need to also investigate the Sequence
ops and data type.
Remove the current kludge for optional outputs and have the builder determine which optional outputs are not being used by gathering names of inputs.
Reorganize the directories according to https://packaging.python.org/en/latest/tutorials/packaging-projects/#packaging-python-projects
Change Exporter
to Graph
and build the graph as wrappers are called.
(type, shape)
exporter.inputs[name]
can be used as a value for that inputDoes opset downgrading work well enough to export as the current opset and then downgrade with ONNX tools rather than attempting to make ops know how to behave as different opsets?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.