Search code examples
pythonkeras

can't import keras.layers.Merge


I want to merge two LSTM models in Keras. I have seen many examples of importing Merge as:

from keras.layers import Merge

When I do this, I get an import error.

ImportError: cannot import name 'Merge'.

Has there been some refactor and now Merge is elsewhere?


Solution

  • As of keras 2, the module keras.layers.merge doesn't have a generic public Merge-Layer. Instead you are supposed to import the subclasses like keras.layers.Add or keras.layers.Concatenate etc. directly (or their functional interfaces with the same names lowercase: keras.layers.add, keras.layers.concatenate etc.).

    See what types of merging layers exist in the keras docs

    Edit: tf.keras.layers.Add etc. would now be the correct import path using tf.keras inside tensorflow - since keras 2.3.0 (Sep 2019), this is the developer's official recommendation:

    This is also the last major release of multi-backend Keras. Going forward, we recommend that users consider switching their Keras code to tf.keras in TensorFlow 2.0.