Skip to content

fix: refuse per-axis int8 activations; convert outermost-axis concatenation - #127

Merged
asteinh merged 2 commits into
developfrom
fix/bias-order-activation-encoding
Oct 4, 2026
Merged

asteinh merged 2 commits into
developfrom
fix/bias-order-activation-encoding

Conversation

@asteinh

@asteinh asteinh commented Oct 4, 2026

Copy link
Copy Markdown
Member
  • The compiler refuses an int8 activation quantized per axis, for every operator. A plan record holds one scale and zero point for an activation, and readers now ignore the producer's per-channel requantization it may carry, so a per-axis encoding could not be told apart. Before, some runtime readers rejected it and others read only its first scale.
  • The TFLite frontend converts CONCATENATION and PACK on the outermost axis and at ranks other than 3 and 4, by joining the parts as contiguous runs. Keras unrolls an LSTM with PACK on axis 0.
  • New int8 and float32 fixtures, bit-exact against TFLite Micro: convolution, depthwise and fully connected with non-zero biases; a per-channel convolution feeding a split; outermost-axis concatenation and pack; rank-2 concatenation; and an unrolled Keras LSTM.

Needs the runtime branch of the same name.

@asteinh
asteinh merged commit 4e68fb8 into develop Oct 4, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant