ONNX v1.17.0 is now available with exciting new features! We would like to thank everyone who contributed to this release!
Please visit onnx.ai to learn more about ONNX and associated projects.
Key Updates
ai.onnx Opset 22
- Update to support bfloat16:
- Acos, Acosh, Asin, Asinh, Atan, Atanh, AveragePool, Bernoulli, Conv, ConvTranspose, Cos, Cosh, DeformConv, Det, Dropout, Elu, EyeLike, GRU, GlobalAveragePool, GlobalLpPool, GlobalMaxPool, GridSample, HardSigmoid, HardSwish, InstanceNormalization, LSTM, LpNormalization, LpPool, MaxPool, MaxRoiPool, MaxUnpool, Mish, Multinomial, NegativeLogLikelihoodLoss, RNN, RandomNormal, RandomNormalLike, RandomUniform, RandomUniformLike, RoiAlign, Round, Selu, Sin, Sinh, Softplus, Softsign, Tan, ThresholdedRelu
Python Changes
- Support for numpy >= 2.0
Bug fixes and infrastructure improvements
- Fix Check URLs errors 5972
- Use CMAKE_PREFIX_PATH in finding libprotobuf 5975
- Bump main VERSION_NUMBER to 1.17.0 5968
- Fix source and pip tar.gz builds on s390x systems 5984
- Fix unique_name 5992
- Fix SegFault bug in shape inference 5990
- Fix onnx.compose when connecting subgraphs 5991
- Fix conversion from split 11 to split 18 6020
- Update error messages for NegativeLogLikelihoodLoss inference function 6021
- Generalize input/output number check in shape inference 6005
- Replace rank inference with shape inference for Einsum op 6010
- build from source instruction with latest cmake change 6038
- Handle OneHot's depth value during shape inference 5963
- Not to install cmake in pyproject.toml on Windows 6045
- fix a skipped shape infer code 6049
- Include the ".onnxtext" extension in supported serialization format 6051
- Allow ReferenceEvaluator to return intermediate results 6066
- Fix 1 typo in numpy_helper.py 6041
- Remove benchmarking code 6076
- Prevent crash on import after GCC 8 builds 6048
- Check graph outputs are defined 6083
- Enable additional ruff rules 6032
- Add missing shape inference check for DequantizeLinear 6080
- Add bfloat16 to all relevant ops 6099
- fix(ci): install python dependencies with --only-binary :all: in manylinux 6120
- fix: install google-re2 with --only-binary option 6129
- Specify axis parameter for DequantizeLinear when input rank is 1 6095
- Pin onnxruntime to 1.17.3 for release CIs 6143
- Fix INT4 TensorProto byte size is 5x larger than expected with negative values 6161
- Mitigate tarball directory traversal risks 6164
- Fix reference implementation for ScatterND with 4D tensors 6174
- Addition of group > 1 in test and in backend for ConvTranspose 6175
- Support for bfloat16 for binary, unary operators in reference implementation 6166
- Refactor windows workflow to work on standard windows 6190
- Fix a few crashes while running shape inference 6195
- Update onnx to work with numpy>=2.0 6196
- Use sets to improve performance of dfs search 6213
- Upgrade reuse to v4.0.0 6216
- Makes to_array, from_array support custom numpy dtype, support float16 type in parser 6170
- Handle functions in external data helper 6233
- Refactor safe extract method to fix issue 6215 6222
- move examples dir 6230
- Use MACOSX_DEPLOYMENT_TARGET=12.0 for macOS wheels 6242
- Handle the optional input in infer_node_outputs 6250
- Add check on dimensions in Gemm opset 6 6217
- Update broken URLs 6255
- The latest protobuf pkg 5.28.0 is failing on Windows. use the one pre… 6342
- Remove unused variables 6303
Test improvements
- Migrate CI to use Github Actions 6075
- Add shape inference test for custom op 6068
- chore(ci): build and test macOS universal2 wheels on macOS arm64 6117
- Fix input names for quantize/dequantize ONNX backend tests 6122
- Verify model deletion after testing 6127
- Better name for Github Action and fix Windows build on CI 6173
- Fix CI on Windows 3.12 6179
- Rename test name with duplicated names, add logic to check it does not happen again 6194
Documentation updates
- Fix typos in the comments and documentation 5944
- Add more partner projects to be notified about new releases 6042
- Update release process documentation 6043
- Update CI pipeline README 6086
- Add/Format License/Copyright headers 6128
- Add alternative approach in ONNX converter section 6188
- Update minor reuse stuff 6221
- Handle functions in external data helper
- typo: Update OnnxReleases.md 6231
- Add the missing python api docs 6237
- ExternalData - On Windows document proper offset for memory mapping support 6247
- Fix main url checks 6312
Security updates
- a) add license/Copyright header, b) add missing TopLevel Security 6184
Installation
You can upgrade to the latest release using pip install onnx --upgrade
or build from source following the README instructions.
Contributors
Thanks to these individuals for their contributions in this release since last 1.17.0 release:
Aditya Goel, Adrian Lizarraga, Aman K. Shihab, Andreas Fehlner, Charles Volzka, Christian Bourjau, Danni, G. Ramalingam, Justin Chu, Kyle Sayers, Matthieu Darbois, Raghavan Naresh Sarangapani, Ramakrishnan Sivakumar, RoboSchmied, Thiago Crepaldi, Xavier Dupré, ivberg, liqun Fu, sunflowersxu, uint256_t, yancong