Deep Learning Integration in Mac M1 not working

Hi
The Deep Learning Integration for the Mac M1 is still not working.
I got the error that Tensorflow is installed in version 2.10.0 but that the maximum version is 2.0.0 (see image below).

Is there a workaround to get the DL integration working?

1 Like

Hi @deganza,

yes, unfortunately there is no support for using the Keras-based deep learning integration in KNIME on Apple Silicon. The reason is that this deep learning integration was built with Tensorflow 1 (hence the warning that 2.0.0 is the “exclusive” maximum version). However, Apple Silicon support for Tensorflow was only added in Tensorflow version 2.5 (see e.g. the conda packages provided by Apple: Files :: Anaconda.org).

In the meantime, we have made a lot of improvements to the KNIME Python integration in general, so the best way forward would be a new KNIME Keras deep learning integration based on the new Python integration. Unfortunately I cannot promise any dates when this would happen.

What you can try in the meantime is to use the KNIME TensorFlow 2 extension, because we have seen it working with Tensorflow 2.10. But that extension is not as feature-rich as the KNIME Tensorflow 1 extension.

Hope that helps,
Carsten

4 Likes

thanks Carsten for your quick answer!

Would it then also be possible to integrate GPU support on M1, as I described in my following article on Medium?

Yes, for the KNIME Tensorflow 2 extension you can use full Apple Silicon support of Tensorflow. Sorry I wasn’t explicit enough in my previous answer, that’s what I meant with “we’ve seen it working”. We have successfully used the KNIME Tensorflow 2 integration on Apple Silicon with a Python environment set up pretty much exactly like you describe in your article.

For an improved Tensorflow+Keras integration we would obviously strive for full support for the Apple Silicon GPUs.

1 Like

Do you have an example worklfow?

I believe you can take any TF2-workflow from hub. The only requirement is that your computer should be configured properly and all Python dependencies should be installed.
As an example you can take a look at this workflow:

Thanks but although the environment seems to be installed correctly (see image) I got errors by executing the workflow:
ERROR DL Python Network Creator 3:23 Execute failed: EndVector() takes 1 positional argument but 2 were given

It is hard to tell what is the reason without having a code.
But I would also expect this kind of error in case you are using TF2 version that is different from one that was used building this workflow - even if it is a minor difference. Unfortunately Python packages are extremely inconsistent and sensitive to versions.

The code is in the workflow you recommended me.

@deganza I tried several things but was not able to get TensorFlow2 up and running on an M1 notebook. I was able to store an initial network in a folder and read that with the TensorFlow 2 Network Reader but the “DL Python Network Learner” would not accept that. I did not continue with the pure Python nodes since that is not what the integration would be about.

The YAML file mentioned in my article (KNIME and Python — Setting up Deep Learning Environments for Keras and TensorFlow | by Markus Lauber | Low Code for Advanced Data Science | Dec, 2022 | Medium) would not work on Apple Silicon and I was not able (yet) to create a working one.

I used the Intel KNIME version with Rosetta since the generic Apple Silicon integration still seems to have a bug preventing me from using it (AP-19894 - Knime 4.7 - Apple Silicon - M1 - #2 by mlauber71).