cancel
Showing results for 
Search instead for 
Did you mean: 

X-CUBE-AI error while analyzing a Keras model in Ubuntu

DUlia
Associate II

The model I've been using for a year in CubeIDE 1.6.0 on a laptop cannot be analyzed now on a PC in the latest CubeIDE 1.6.1 while using the same X-Cube-AI v5.1.2. (I've tried the most recent v6.0.0 - the same error.)

Ubuntu 20.04 (both laptop and PC).

Model: https://github.com/Shahnawax/HAR-CNN-Keras/blob/master/model.h5

Error log on a PC:

Analyzing model 
/home/dizcza/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/5.1.2/Utilities/linux/stm32ai analyze --name network -m /home/dizcza/Downloads/model.h5 --type keras --compression 1 --verbosity 1 --workspace /tmp/mxAI_workspace505704300370625560993010444853274 --output /home/dizcza/.stm32cubemx/stm32ai_output  
Neural Network Tools for STM32 v1.3.0 (AI tools v5.1.0)

It does not produce a log file (the command ends with a nonzero exit code), therefore I cannot post it.

The same model has been successfully analyzed today on a laptop Ubuntu 20.04 beside me.

6 REPLIES 6
DUlia
Associate II

It's even worse! Now I cannot simply open an .ioc file anymore! (PC only.)

I've encountered the same error while opening this .ioc file (https://github.com/dizcza/stm32f446-FunduMoto/blob/nn/stm32f446-FunduMoto.ioc) in both CubeIDE CubeMX perspective and the latest STM32CubeMX 6.2.1 (standalone).

$ /opt/st/stm32cubeide_1.6.1/stm32cubeide 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.st.microxplorer.plugins.pinoutandconfiguration.PinoutAndConfigurationView (file:/opt/st/stm32cubeide_1.6.1/plugins/com.st.stm32cube.common.mx_6.2.1.202103241236/plugins/pinoutandconfiguration.jar) to field javax.swing.plaf.basic.BasicSplitPaneDivider.leftButton
WARNING: Please consider reporting this to the maintainers of com.st.microxplorer.plugins.pinoutandconfiguration.PinoutAndConfigurationView
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.base/java.util.ArrayList.addAll(Unknown Source)
	at com.st.microxplorer.plugins.ipmanager.gui.IPsOverviews.getAvailableFilter(IPsOverviews.java:1641)
	at com.st.microxplorer.plugins.ipmanager.gui.IPsOverviews.updateAllDiagram(IPsOverviews.java:2412)
	at com.st.microxplorer.plugins.ipmanager.pluginmanagement.IpPluginManagement.updateAllDiagram(IpPluginManagement.java:376)
	at com.st.microxplorer.plugins.ipmanager.IPPluginView.getSpecificTask(IPPluginView.java:335)
	at com.st.microxplorer.plugins.pinoutandconfiguration.PinoutAndConfigurationView.propertyChange(PinoutAndConfigurationView.java:948)
	at java.desktop/java.beans.PropertyChangeSupport.fire(Unknown Source)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
	at java.desktop/java.awt.Component.firePropertyChange(Unknown Source)
	at java.desktop/javax.swing.JComponent.addNotify(Unknown Source)
	at java.desktop/java.awt.Container.addNotify(Unknown Source)
	at java.desktop/javax.swing.JComponent.addNotify(Unknown Source)
	at java.desktop/java.awt.Container.addNotify(Unknown Source)
	at java.desktop/javax.swing.JComponent.addNotify(Unknown Source)
	at java.desktop/java.awt.Container.addNotify(Unknown Source)
	at java.desktop/javax.swing.JComponent.addNotify(Unknown Source)
	at java.desktop/java.awt.Container.addImpl(Unknown Source)
	at java.desktop/java.awt.Container.add(Unknown Source)
	at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:488)
	at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.access$6(EmbeddedSwingComposite.java:471)
	at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:286)
	at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
 

0693W00000AQ72zQAD.png

fauvarque.daniel
ST Employee

You should have more output in the STM32CubeMX log file located at ~/.stm32cubemx/STM32CubeMX.log

Regards

Daniel


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.
DUlia
Associate II

Attached the log file.

fauvarque.daniel
ST Employee

I've reproduced the crashing stm32ai command line on Ubuntu 20.04.2 LTS

It is working fine on Ubuntu 18.04 LTS

Thanks for reporting this issue, I don't have the root cause yet but I'll let you know if there is a workaround


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.
fauvarque.daniel
ST Employee

can you confirm that your CPU doesn't support avx instructions ?

cat /proc/cpuinfo | grep avx

if you have nothing in the output it means it doesn't support those extensions.

Recent versions of Tensorflow uses avx instructions by default.

On a machine without avx support tensorflow will not work (my old linux machine doesn't have avx support).

A colleague of mine ran stm32ai on Ubuntu 20.04 without any problem but his CPU supports avx instructions.


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.
DUlia
Associate II

Exactly, my CPU doesn't support avx instructions, unfortunately.