简体   繁体   中英

Cannot import name 'Merge' from 'keras.layers'

I have try run a code but I find a problem with merge layers of Keras . I'm using python 3 and keras 2.2.4

This is de code part of code


import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
from keras.preprocessing import image, sequence
import cPickle as pickle


    def create_model(self, ret_model = False):

        image_model = Sequential()
        image_model.add(Dense(EMBEDDING_DIM, input_dim = 4096, activation='relu'))
        image_model.add(RepeatVector(self.max_length))

        lang_model = Sequential()
        lang_model.add(Embedding(self.vocab_size, 256, input_length=self.max_length))
        lang_model.add(LSTM(256,return_sequences=True))
        lang_model.add(TimeDistributed(Dense(EMBEDDING_DIM)))

        model = Sequential()
        model.add(Merge([image_model, lang_model], mode='concat'))
        model.add(LSTM(1000,return_sequences=False))
        model.add(Dense(self.vocab_size))
        model.add(Activation('softmax'))

        print ("Model created!")

This is the message of error

from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
ImportError: cannot import name 'Merge' from 'keras.layers'

Merge is not supported in Keras +2. Instead, you need to use Concatenate layer:

merged = Concatenate()([x1, x2]) # NOTE: the layer is first constructed and then it's called on its input

or it's equivalent functional interface concatenate (starting with lowercase c ):

merged = concatenate([x1,x2]) # NOTE: the input of layer is passed as an argument, hence named *functional interface*

If you are interested in other forms of merging, eg addition, subtration, etc., then you can use the relevant layers. See the documentation for a comprehensive list of merge layers.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM