Keras To TensorFlow Network Converter node issue

Hi,

I’m trying to run this node in order to convert a Keras network to Tensorflow. The problem is that when I’m running it on the SLES 15 SP2 VM it kills the KNIME app. But, on my local Windows it works fine without any issues.

Thanks,
Mihai

1 Like

Hi Mihai,
do you have any error messages or log files for us so that we can get some more information about the error?
Kind regards,
Alexander

1 Like

Hi Alexander,

When it crashed for the first time a colleague asked me to take a look and I saw this in the .metadata/knime/knime.log:
"2020-10-24 04:29:58,271 : WARN : main : : BrowserProvider : : : No html browser for node description available.
org.eclipse.swt.SWTError: No more handles because there is no underlying browser available.
Please ensure that WebKit with its GTK 3.x bindings is installed (WebKit2 API level is preferred). Additionally, please note that GTK4 does not currently have Browser support.

    at org.eclipse.swt.SWT.error(SWT.java:4749)
    at org.eclipse.swt.browser.Browser.<init>(Browser.java:123)
    at org.knime.workbench.descriptionview.BrowserProvider.<init>(BrowserProvider.java:105)
    at org.knime.workbench.descriptionview.node.HelpView.<init>(HelpView.java:82)
    at org.knime.workbench.descriptionview.DescriptionView.createPartControl(DescriptionView.java:138)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:154)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:361)
    at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1002)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:967)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:408)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:331)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)"

But after that, I didn’t saw anything in the .metadata/knime/knime.log file related to this error when I tested on my own. I tested on 2 different SLES 15 SP2 VMs, one with Plasma Desktop Environment and the other is having installed GNOME and MATE.

Thanks,
Mihai

1 Like

Hi,
Is it a hard crash to Desktop? And does KNIME always crash when executing this node? Does it show some kind of crash report?
Kind regards,
Alexander

1 Like

Hi,

Yes, basically the KNIME app is vanished without any crash report and is happening all the time. I don’t know exactly how to show you a quick demo. I’ll try to make a short movie on how it happens.

Thanks,
Mihai

1 Like

Hi,

Here is my demo: https://drive.google.com/file/d/1PqWEl1li0Bm6ByZh7bdqgBThYq33ZYFv/view?usp=sharing

Thanks,
Mihai

1 Like

Hi Mihai,
Thank you very much for the video! As far as I know the Keras Network to Tensorflow node relies on Python. From the log file it seems that the Python installation is faulty, as it cannot determine the correct folder of the Anaconda environment. However, this should not lead to such a hard crash.
Can you check if there are any files in the format hs_err_.log were generated in the KNIME installation folder?
Additionally, can you please add the following lines at the end of your knime.ini file:

-XX:OnError="echo %p"
--XX:+CrashOnOutOfMemoryError

and then run the workflow again and see if any additional errors are printed?
Kind regards,
Alexander

1 Like

Hi Alexander,

The Anaconda environment is discovered by KNIME in the Deep Learning section. I’ve updated the knime.ini file with the lines the you’ve wrote and there is no hs_err_.log file from today, there are some old hs_err_.log files from the last month in KNIME folder installation. The error that is printed now in the .metadata/knime/knime.log is:
"2020-10-29 09:19:14,029 : ERROR : Thread-15 : : Activator : : : Cannot run program “no_conda_environment_selected/bin/python”: error=2, No such file or directory
java.io.IOException: Cannot run program “no_conda_environment_selected/bin/python”: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at org.knime.python.Activator.testPythonInstallation(Activator.java:132)
at org.knime.python.Activator$1.run(Activator.java:88)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 3 more
"

Thanks,
Mihai

1 Like

Hi,
After I’ve set the proper path for the Anaconda environment in the Python section as in the picture the error has been solved, but now is still crashing without printing any error in the knime.log file.

Thanks,
Mihai

1 Like

Hi Mihai,
Good that we can rule out the wrong Anaconda setting for the crash, but bad that it is still happening :slight_smile: Can you add the following lines to the knime.ini file:

-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc:file

and then run it again? The output may not end up in the knime log, so can you start the KNIME executable from your terminal and watch the output there as well?
Kind regards,
Alexander

1 Like

Hi Alexander,

I ran the KNIME from terminal and I got this:

Exception in thread “Timer-2” java.lang.SecurityException: Could not lock User prefs. Lock file access denied.
at java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(FileSystemPreferences.java:949)
at java.util.prefs.FileSystemPreferences.lockFile(FileSystemPreferences.java:937)
at java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:741)
at java.util.prefs.FileSystemPreferences.flush(FileSystemPreferences.java:836)
at java.util.prefs.FileSystemPreferences.syncWorld(FileSystemPreferences.java:476)
at java.util.prefs.FileSystemPreferences.access$1200(FileSystemPreferences.java:50)
at java.util.prefs.FileSystemPreferences$3.run(FileSystemPreferences.java:444)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
*** Error in `/mnt/knime_4.2.0//plugins/org.knime.binary.jre.linux.x86_64_1.8.0.252-b09/jre/bin/java’: free(): invalid pointer: 0x00007f48b1426820 ***

Thanks,
Mihai

1 Like

Hi,
I found a similar issue with DBeaver, which also seems to be based on Eclipse. Can you try setting the environment variable:

export MALLOC_CHECK_=0

And then run KNIME and see if the problem persists?
Kind regards,
Alexander

3 Likes

Hi,

It works fine with this setting. Thank you very much for your help!

Best regards,
Mihai

2 Likes