ShuffleNet support on OpenMV

Hi,
I have tried several well-known networks (such as MobileNet, ResNet, LeNet, SqueezeNet) on Open MV Cam H7 Plus and the board works perfectly, but, when I’m testing the ShuffleNet tflite model, a hard crash appening (the program stops, LED blinks in green for a few times and afterwards it blink white).
I have first thinked to a memory problem since ShuffleNet is 4MB big, but then I have tried the other models previously mentioned, that are are also bigger (e.g. ResNet is 13 MB), and they work well.
Moreover, I have analized this model with STM32CubeMX X-CUBE-AI (using STM32H743II MCU) and the log reports “INTERNAL ERROR” without any other information, while with the other models the analyze process successfully ends.
Since ShuffleNet uses pointwise group convolutions and channel shuffle, I think that the error could be that these layers are not yet supported.
Could anyone confirm me this or is there another reason?

Thank you in advance.

TensorFlow light for Microcontrollers has bugs. In particular, you are likely running into issues with cmsisnn and the low effort port ARM did of the code.

For example, the folks who made it did things like having statically sized buffers for arrays and then would put a variable sized array into that static buffer. If the input array was smaller than the static buffer… all good… if bigger, then a hard crash like you are happening.

It took several months to find this issue. However, it’s likely that you are running into something like this in the code.

Can you ping Edge Impulse about this issue you are having? They found the bug the last time. Unfortunately, I can only help you with our wrapper code around TensorFlow. If you are getting a hard crash then it’s inside TensorFlow. You’d get a nice error message if it was an out of memory issue or an unsupported layer.