Keras/Tensorflow relying on convert_objects deprecated 5 years ago.

The latest version of pandas 1.* does not work with the Keras/Tensorflow nodes because they removed a method, namely convert_objects.

The solution as explained here is to downgrade pandas back to version 0.23, which may not be an option for some users.

Pandas removal of this method is hardly unfair because it has been deprecated since 2015/2016. Are there any plans to update these nodes? Is there any way to contribute?

Hi @steven_burns,

Sorry for the late reply!

Upgrading our supported version of pandas (or any other integral package of the Python (deep learning) integrations) is currently not straightforward because doing that would not only affect non-scripting nodes like the Keras nodes, whose maintenance is under our control, but also Python scripting nodes like the DL Python nodes which contain user-provided code. We do not want to break user code that still relies on the older package versions, so while pandas’ removal of the method may be reasonable, it still conflicts with the stronger guarantees that KNIME strives to make regarding backward compatibility.
At the moment, this unfortunately comes at the cost of people who (understandably) want/have to adopt more recent versions of these packages and/or do not use the scripting nodes at all. In the long term, we want to resolve this conflict by minimizing our dependencies on third-party packages as far as possible (at the very least in the non-scripting nodes).
In the short term, we could at least check whether we can support pandas ≤ 0.23 and 1.x in parallel, and hope that pandas’ API remains reasonably stable for the time being. I will open a ticket for that and see what we can do.
Let me assure you that your post definitely rekindled our internal discussion of how to properly maintain/evolve our external Python dependencies. Sorry that I cannot give you a more precise answer right now.

Marcel

It’s been a while, but I quickly wanted to let you know that beginning with KNIME Analytics Platform 4.5.0, which was released two days ago, the deep learning nodes now also support the more recent versions of pandas and Python in general.

3 Likes