soulless
soulless

Reputation: 393

Merging models of multiple inputs

I am having trouble merging 2 models of multiple inputs. The 2 models both receive multiple inputs for multichannel CNN. But it's giving me the error - TypeError: unhashable type: 'list' when I tried to merge them. Any idea what I am doing wrong here? Thank you very much for your assistance in advance.

def mergeCnnModel(cnnModel, cnnModel2):
    merged = concatenate([cnnModel.layers[-2].output, 
    cnnModel2.layers[-2].output])
    dense1 = Dense(10, activation='relu')(merged)
    outputs = Dense(1, activation='sigmoid')(dense1)
    model = Model(inputs=[cnnModel.input, cnnModel2.input], outputs=outputs)
    # compile
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    # summarize
    print(model.summary())
    return model

enter image description here

Upvotes: 0

Views: 598

Answers (1)

nuric
nuric

Reputation: 11225

Converting comment into answer: The problem is passing list of lists as inputs to the final model. You need concatenate the individual input lists of sub models:

model = Model(inputs=cnnModel.inputs+cnnModel2.inputs, outputs=outputs)

Upvotes: 1

Related Questions