-
-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fresh start #46
Fresh start #46
Conversation
@dfdx Thanks for picking this up, really appreciate it. If you're revamping the structure of the package, the paper perhaps loses its relevance since it outlines the earlier design choice. I'd say its better to create a new folder (something like |
@ayush-1506 Thanks, this approach looks reasonable! I've finalized the changes described above, so the PR is ready for review. |
@dfdx Thanks again, looks like a lot of changes. I'll try to review the changes in the coming days. Also tagging @philtomson here. |
I feel like I'm pretty far out of the loop here. I'm going to defer to @ayush-1506. |
Let me reiterate on what this PR is so that it doesn't look like much of work. The changes boil down to:
All the code belongs to @DrChainsaw who kindly allowed me to create this PR, the background for this (quite huge) change can be found in the discussion on the FluxML tracker. I hope it simplifies your reviews a little bit :) |
Bump. Please let me know if there's anything I can do to help with the review (e.g. more context, unaddressed questions, concerns, etc.). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for the delay. Looks good, just a few changes and clarifications would be helpful.
* [old version of this README](https://github.com/FluxML/ONNX.jl/blob/b7c3d0b48036947257e439c31e00430b0a94690a/README.md) | ||
* [RFC for the new implementation](https://github.com/FluxML/ML-Coordination-Tracker/discussions/24) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be great if you could add new usage instructions in the readme (even if there's no fixed api at the moment) and a few lines about how this works under the hood.
@@ -0,0 +1,72 @@ | |||
@testset "Read and write" begin | |||
import ONNX | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dfdx I'm wondering if these tests are enough. Don't we also need operator level tests? Basically tests for our mappings of https://github.com/onnx/onnx/blob/master/docs/Operators.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is more level thing so far. The details can be found on the discussion, but the main points are:
- this package in its current state is essentially unmaintained
- there are several competing ONNX libraries out their used in different contexts
- it would be great to have a single implementation - preferably here - that works not only for Flux, but also for other projects (e.g. Avalon.jl which I maintain)
- we don't have agreement on the high-level API yet (e.g. ONNX operators)
- but there's a set of low-level utilities for reading and writing ONNX's ProtoBuf definitions
- the plan is to settle these low-level utilities first and based on it move our discussion of operators further
As you can see from the code, there are only convenient methods for reading and writing ONNX entities without the need to dive into all the subtleties of the format specification. This is also the reason why there are no proper usage examples - it is simply not designed for the end users (yet).
I realize this is a huge change, but since this package doesn't work with the latest Flux version anyway, I think it's fair to step back and redesign everything almost from scratch. Yet I'll be happy to see alternative approaches to the problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it.
@dfdx Thanks for the effort, I'm merging this for now. Would be great if you add a short plan for the next steps somewhere to keep track of these developments. |
As discussed earlier, I'm posting this PR as a fresh start for the ONNX package. It includes utils for reading and writing ONNX's ProtoBuf definitions from https://github.com/DrChainsaw/ONNXmutable.jl/tree/master/src/baseonnx. All corresponding tests pass, but there's still a couple of things update before merging: