Comments (2)
I fully understand the constraints you are facing in getting mainstream adoption of this package, and I want to thank you for getting this started. Hopefully we will see more contributions going forward. My primary goal is to be able to run model predictions on Onnx models using Go, and the two main blockers to using onnx-go is this version compatibility issue and the lack of support for Onnx-ML operators (see #174).
I'm able to workaround the onnx-go limitations by using Microsofts onnxruntime
C-Api and I'm calling these APIs from Go using Cgo, but then it has its own challenges of running it in production. But at least I have something that works.
About the issue at hand, your suggestion is exactly how I got the model import working - compiled the latest version of onnx.proto.3
and replaced the .pb.go file in my local workspace. The decoder
still had issues (it is not able to parse an Onnx output node that is of type Map
), but I temporarily worked around that to get the "model import" to succeed. And then I ran into the LinearClassifier
not supported problem referenced earlier.
from onnx-go.
Thank you for raising this issue and for the investigation you've made so far.
First, a bit of context: I started onnx-go a couple of months ago with the idea that we (Gophers) needed a simple way to handle a pre-trained neural net model within the Go ecosystem (and mainly in Gorgonia).
I thought that the community could embrace the project and add contributions (TBH, I even though that it could, eventually, be moved to the onnx organization).
As of today, it is still is a side project, and sadly, very few contributions are made to the project besides my own (even if the contributors have brought great value, and I am thankful for their work and time).
That said, I fully agree with you: onnx-go
must have a proper policy to follow ONNX versions. But ONNX is moving fast (Microsoft, for example, is paying full-time excellent developers to work on onnxruntime
and to various contributions to the IR), and as long as I won't have more time and/or more developers involved, I think this will be a hard task.
Anyway, I am still thinking of a proper way to handle version compatibility for the package and any contribution or idea is welcome and appreciated.
Now about your problem (because I'd like you to be able to use the package :D):
What I propose is to compile the latest IR with protoc
and replace the code from the IR
package with the new one, and if it remains compatible with the main package. But it's not a long term viable solution.
WDYT? Can you try that and see if it works in your case?
from onnx-go.
Related Issues (20)
- Implement operator PRelu for backend Gorgonia
- Implement operator pRelu for backend Gorgonia
- Failed to infer shape. Op: A ร Bแต: Inner dimensions do not match up HOT 2
- Implement operator `Gather` for backend `Gorgonia` HOT 3
- Cannot model.UnmarshalBinary - says 'No data found' HOT 1
- Can't import onnx model, converted from BigGAN-PyTorch HOT 2
- Implement operator LSTM,Clip for backend Gorgonia HOT 1
- Will this project be maintained further and are contributions still welcomed?
- Implement operator `LinearRegressor` for backend `gorgonia`
- "Asymmetric padding" error
- panic: negative dimension size does not make sense
- ../../go/src/gorgonia.org/tensor/dense_compat.go:442:23: undefined: array.Interface HOT 2
- Updated depens
- poor performance (run model)
- run() function calls newMachine() everytime HOT 1
- Question: unsqueeze: axes in not an []int64 HOT 3
- Support for empty tensors
- Tape machine does not reset properly for some models HOT 2
- Implement operator `PReLU` for backend `Gorgonia`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onnx-go.