Skip to main content
Associate
June 19, 2026
Question

[STM32N6 / [Neural-ART] Compiler crash on 1D CNN with MaxPooling1D - orlando_pool_acc_v2.cc:88 pool_get_batch_size: Assertion 'i != 0' failed

  • June 19, 2026
  • 1 reply
  • 23 views

Hello,

The Neural-ART compiler (atonn) crashes with an internal assertion when I run `analyze` on a quantized 1D CNN. The crash happens on the pooling unit and I cannot get past it.

Environment

  • ST Edge AI Core v2.2.0-20266 (X-CUBE-AI 10.2.0), Windows, via STM32CubeMX
  • Target: stm32n6
  • Also reproduced on ST Edge AI Developer Cloud with ST Edge AI Core v4.0.1-20581 -> same assertion, so this does not look version-specific.

Model 

Keras model exported to TFLite, full int8 quantization (int8 input and output, per-channel), batch size fixed to 1.
Architecture (1D CNN for signal classification):
  Input [1, 3000, 1]
  3x { Conv1D -> BatchNormalization -> ReLU -> Dropout -> MaxPooling1D(pool=2, stride=2) }
     conv filters = 128 (k=30), 32 (k=20), 4 (k=10), padding 'same'
  Flatten -> Dense(512) -> BN -> Dense(128) -> Dense(32) -> Dense(4, softmax)
Input tensor quantization has a non-zero zero-point (scale ~0.0366, zp -2).
When converted, TFLite lowers the model to CONV_2D (x3) + MAX_POOL_2D (x3) + RESHAPE (x2) + FULLY_CONNECTED (x4) + SOFTMAX.

Command

stedgeai analyze --target stm32n6 --name network -m model_int8_fixedBS_V2.tflite --st-neural-art n6-allmems-O3@user_neuralart.json

Error

 >>>> EXECUTING NEURAL ART COMPILER
Warning: Oauto did not find valid compile options: aborting
Configuration 0: alt-scheduler(false):
  orlando_pool_acc_v2.cc:88 pool_get_batch_size: Assertion 'i != 0' failed.
Configuration 1: alt-scheduler(true):
  orlando_pool_acc_v2.cc:88 pool_get_batch_size: Assertion 'i != 0' failed.
E103(CliRuntimeError): Error calling the Neural Art compiler

Already tried (no effect) 

  • Fixed input batch size to 1 (input [1, 3000, 1])
  • Full int8 calibration with a real representative dataset
  • --use-onnx-simplifier
  • Optimization profiles O1 and O3
  • ST Edge AI Developer Cloud with Core v4.0.1 (same crash)

Questions

  1. Is MaxPooling1D (i.e. pooling on a 1D CNN, which becomes MAX_POOL_2D over a tensor with a size-1 spatial dimension) supported on Neural-ART? The assertion seems to come from the pooling unit failing to compute a batch/row size.
  2. Is this a known compiler bug, and is there a workaround that does not require changing the architecture? (e.g. forcing the pooling layers to run on the Cortex-M55 / SW fallback)
  3. If a 1D pooling layout is the issue, what is the recommended pattern for 1D signal CNNs on Neural-ART?

I can share the .tflite model (and the original .keras) in a zip if that helps the dev team reproduce. Thanks for your help.

1 reply

Julian E.
ST Technical Moderator
June 23, 2026

Hi ​@Tyrell,

 

You issue seems to be a bug from my point of view and we did not find a way to make your model pass without a change in architecture. By default, the compiler tries to do SW fallback, but it seems that here it does not manage to do it.

 

We asked the compiler team to give us an analysis.

We will let you know then what is their answer.

 

You can find the list of supported layers with the NPU here:

https://stedgeai-dc.st.com/assets/embedded-docs/stneuralart_operator_support.html#overview

 

Best Regards,

Julian

 

​In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.