Transfer learning for image categorization

Hello @davide445,

yes and no.
You can load a Keras network, append layers to it and then train the new network.
However, a typical strategy is to freeze certain parts of a network (i.e. these parts are not changed during training). Currently, this freezing can only be done via our python nodes (DL Python Network Creator and DL Python Network Editor).
I would like to also highlight that it is possible to perform transfer learning in a different way by using the network only as a feature extractor and then relying on another ML algorithm (e.g. XGBoost) to classify your images based on those features. For an example, you can take a look at this forum thread: Multi-Label Image Classification in Knime?

Finally, I am not sure whether a Docker installation of TensorFlow is compatible with KNIME since we didn’t try this yet.
Our recommendation is to set up an Anaconda environment which KNIME can then use to access Keras (see https://www.knime.com/deeplearning/keras for further instructions).

Best,

Adrian

6 Likes