How to implement Merge from Keras.layers

前端 未结 3 1509
盖世英雄少女心
盖世英雄少女心 2021-01-18 10:21

I have been trying to merge the following sequential models but haven\'t been able to. Could somebody please point out my mistake, thank you.

The code compiles while

3条回答
  •  半阙折子戏
    2021-01-18 10:51

    Merge cannot be used with a sequential model. In a sequential model, layers can only have one input and one output. You have to use the functional API, something like this. I assumed you use the same input layer for modela and modelb, but you could create another Input() if it is not the case and give both of them as input to the model.

    def linear_model_combined(optimizer='Adadelta'):    
    
        # declare input
        inlayer =Input(shape=(100, 34))
        flatten = Flatten()(inlayer)
    
        modela = Dense(1024)(flatten)
        modela = Activation('relu')(modela)
        modela = Dense(512)(modela)
    
        modelb = Dense(1024)(flatten)
        modelb = Activation('relu')(modelb)
        modelb = Dense(512)(modelb)
    
        model_concat = concatenate([modela, modelb])
    
    
        model_concat = Activation('relu')(model_concat)
        model_concat = Dense(256)(model_concat)
        model_concat = Activation('relu')(model_concat)
    
        model_concat = Dense(4)(model_concat)
        model_concat = Activation('softmax')(model_concat)
    
        model_combined = Model(inputs=inlayer,outputs=model_concat)
    
        model_combined.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
    
        return model_combined
    

提交回复
热议问题