Reputation: 393
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
Upvotes: 0
Views: 598
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