Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces an ONNX parser for Marabou. The format is very similar to parsing tensorflow models, though a few things are different. ONNX does not have functions for easily computing the output shape of intermediate layers, so the shapes of layers in the graph must be inferred from input shapes, constant shapes, and operations.
I tested the parser on ONNX models converted from tensorflow as well as the ACAS Xu prototype networks in ONNX format found in the VNNLIB repository. A new python script in examples shows how to load and solve queries for ONNX format networks that have been added to examples/networks.
I also fixed a minor bug in Marabou.read_tf to change inputName to inputNames to reflect the multi-input changes made in MarabouNetworkTF.