A Go interface for importing and executing pre-trained ONNX neural network models without framework dependencies.
onnx-go is a Go package that decodes ONNX (Open Neural Network Exchange) binary models into executable computation graphs. It enables Go developers to integrate machine learning capabilities into their applications by leveraging pre-trained models from the ONNX Model Zoo, without requiring deep data science expertise.
Go developers who need to add machine learning capabilities to their code, particularly those wanting to use pre-trained neural network models without extensive data science knowledge.
Developers choose onnx-go because it provides a backend-agnostic design for pluggable execution backends, includes a reference backend using Gorgonia, and focuses on seamless model import and execution within Go ecosystems, abstracting away framework complexities.
onnx-go gives the ability to import a pre-trained neural network within Go without being linked to a framework or library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Efficiently decodes ONNX binary models into structured computation graphs, enabling seamless integration of pre-trained models into Go applications without deep data science knowledge.
Provides pluggable interfaces for execution backends, allowing flexibility to integrate with different computation engines like Gorgonia or custom implementations.
Includes a reference backend using Gorgonia for graph execution, with ongoing expansion of operator support and compatibility with the ONNX Model Zoo, as shown in examples.
Supports running pre-trained models from the ONNX Model Zoo, with practical examples like Tiny YOLO v2 for tasks such as image analysis.
The Gorgonia backend lacks implementation for many ONNX operators, so most models from the Model Zoo may not work, as admitted in the README's coverage documentation.
Only supports importing ONNX models; exporting models to ONNX format is explicitly stated as non-existent, restricting use cases to inference-only scenarios.
The API is marked as experimental and subject to change, leading to potential breaking updates and instability for long-term projects.
The project was archived and recently revived by a new maintainer, so documentation and support may be inconsistent, with possible unresolved issues during transition.