Skip to content

Releases: devin-lai/onnx2coreml

v1.1.0 — Broader model coverage

Choose a tag to compare

@devin-lai devin-lai released this 17 Jun 11:25

Broader model coverage and correctness fixes for onnx2coreml, the ONNX → Apple Core ML converter (.mlpackage ML Program and .mlmodel NeuralNetwork), built on coremltools' MIL builder with numerical-parity verification against ONNX Runtime.

This release brings supported operator coverage to 106 ops and improves conversion fidelity for several real-world model patterns.

Added

  • SpaceToDepth lowering.
  • Flat-directory batch conversion and parity-check tool.
  • Project citation metadata and Core ML model provenance metadata.

Fixed

  • Pow with scalar constant exponents on the NeuralNetwork backend.
  • BatchNormalization for rank-2 (N, C) inputs.
  • Resize linear + asymmetric sampling.
  • Coverage reports now run after cleanup and fusion passes, eliminating false unsupported-op hits.

Install

uv pip install onnx2coreml==1.1.0

Full changelog: https://github.com/devin-lai/onnx2coreml/blob/main/CHANGELOG.md
Compare: v1.0.0...v1.1.0

v1.0.0 — First stable release

Choose a tag to compare

@devin-lai devin-lai released this 17 Jun 11:25

First stable release of onnx2coreml — an ONNX → Apple Core ML converter producing .mlpackage (ML Program / MIL) and .mlmodel (NeuralNetwork), built on coremltools' MIL builder and verified for numerical parity against ONNX Runtime.

Highlights

  • 105 operator lowerings across elementwise/math, activations, convolution/pooling, normalization, linear, shape/movement, indexing/gather-scatter, reduction, recurrent, and attention families.
  • Two output formats — ML Program (.mlpackage, fp16, modern on-device performance) and NeuralNetwork (.mlmodel, older-OS reach).
  • Verified, not assumed — every operator has parity tests run against the live Core ML runtime on macOS.

Added

  • Operator coverage expanded to 105 ops: LSTM (recurrent), GridSample, DepthToSpace, TopK, the ReduceL1/L2/LogSum/LogSumExp/SumSquare family, GatherND/GatherElements, ScatterND/ScatterElements, NonZero, matrix Inverse (com.microsoft), and the trigonometric, logical, and comparison operators.
  • Selective fp16 precision: convert(..., fp32_op_types={...}) keeps numerically sensitive ops in fp32 while the rest runs fp16.
  • Model-zoo evaluation and export tooling under tools/.

Fixed

  • PRelu now handles slopes that broadcast across more than the channel dimension (e.g. (C, H, W)), using the exact elementwise identity rather than Core ML's per-channel prelu op.
  • ConvTranspose now honors output_padding.
  • PRelu handles non-rank-4 inputs and scalar slopes; Clip handles integer tensors; Expand handles boolean tensors.
  • Constants are saturated into the int32 and fp16 ranges to avoid overflow (int64 sentinels and FLT_MAX attention-mask fills).

Install

uv pip install onnx2coreml==1.0.0

Full changelog: https://github.com/devin-lai/onnx2coreml/blob/main/CHANGELOG.md