mortont / axon_onnx

Easily convert models between ONNX and Axon
Apache License 2.0
95 stars 22 forks source link

AxonONNX

Easily convert models between ONNX and Axon.

When loading models, this project only supports a subset of the ONNX specification. See Ortex which provides full-blown compatibility for running ONNX models via ONNX Runtime bindings.

Installation

Add to your mix.exs:

def deps do
  [
    {:axon_onnx, "~> 0.4"}
  ]
end

Protobuf

Additionally, AxonONNX uses protox to generate code for parsing protocol buffers data within ONNX.

If you want to regenerate this code, you can invoke the following command:

mix generate_protobuf

Note that you'll need to install protoc (>= 3.0). It must available in $PATH. You can download it here or you can install it with your favorite package manager (brew install protobuf, apt install protobuf-compiler, etc.).

Development & Test

The onnx and onnxruntime python packages are required to run the unit tests: pip3 install onnx && pip3 install onnxruntime. The test cases will be generated automatically upon first mix test.

License

Copyright (c) 2021 Sean Moriarity

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.