Quantco / Quantco/spox

Tracking issue for unsupported parts of the standard

Open
#28 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement future onnx
Dominant language
Python
Stars
101
Forks
8
Avg merge
18h 53m
Merged PRs (30d)
5

Description

There are some parts of the standard that we don't yet support or we can't test due to their limited usage, but it would be a good idea to write these down in case they come up.

Unticked features written in bold have (unstable and possibly partial) internal implementations and test suites. Let ticked features be the ones that are stable.

Features in this list without their own issue are not significant enough to be a blocker for a release.

  • Functions - Limited testing due to limited ORT support
  • Initialisers - Replaceable by Constant, initialisers as input defaults unsupported in ORT. #50
  • External tensor data - Currently values that become TensorProto must be kept in memory as numpy.ndarray. How will this affect running type inference, when e.g. attributes are expected?
  • Sparse tensors - Mostly seem to have a use in initialisers, but currently their appearances for e.g. Constant are ignored.
  • Map value type - Though in the standard and undoubtedly would be useful, I'm not sure if it's possible to create/use one.
  • Non-standard (non-numpy) data types - though unmentioned (?) in the standard directly, some operators accept dtypes like bfloat16. We would need to slightly modify our representation to accept this.
  • Custom naming - Note this isn't strictly required by the standard for producers but it sometimes comes up (e.g. for partial output evaluation). Since Spox tries to keep errors from reaching ONNX checkers it autogenerates all names. It could be useful to allow the user to use their own naming, or access Spox's, if they really wish to.
  • Training, differentiability - This seems to be mostly a preview feature.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the linked sections of docs/IR.md and review the existing internal implementations and test suites for one unchecked feature. Narrow the work to a specific support or testing target, with completion defined by stable behavior and passing tests before marking the tracking entry complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.