【问题标题】:Merging models of multiple inputs合并多个输入的模型
【发布时间】:2018-11-12 04:02:41
【问题描述】:

我在合并多个输入的 2 个模型时遇到问题。这两个模型都接收多通道 CNN 的多个输入。但是当我尝试合并它们时,它给了我错误 - TypeError: unhashable type: 'list'。知道我在这里做错了什么吗?非常感谢您提前提供的帮助。

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

【问题讨论】:

  • 你能提供错误的跟踪吗?
  • 这是踪迹
  • 你能试试Model(inputs=cnnModel.inputs+cnnModel2.inputs, outputs=outputs)吗?问题是通过模型输入。
  • 成功了,非常感谢

标签: python keras deep-learning keras-layer convolutional-neural-network


【解决方案1】:

将评论转换为答案:问题是将列表列表作为输入传递给最终模型。您需要连接子模型的各个输入列表:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 2017-08-26
    • 2019-03-31
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多