【问题标题】:How to use the output of a Keras functional-API model as input into another model如何使用 Keras 函数式 API 模型的输出作为另一个模型的输入
【发布时间】:2020-03-21 15:42:32
【问题描述】:

我训练了一个基本的函数式 API Keras 模型,现在我想将其输出重新用作新模型的输入,同时也重新使用其权重。在新模型上,我想再添加一个输入并将其与基本模型的输出相乘。 因此,在新模型中,我希望有两个输入(包括一个基本模型 + 新添加的一个)和一个新输出,该输出由基本模型输出与新输入的元素乘法组成。

基本模型如下所示:

图层(类型)输出形状参数#
input_1 (InputLayer) (无, 30, 1) 0
_________________________________________________________________ lstm_1 (LSTM)(无,64)16896
_________________________________________________________________ 辍学_1(辍学)(无,64)0
_________________________________________________________________ 密集_1(密集)(无,96)6240
_________________________________________________________________ 辍学_2(辍学)(无,96)0
_________________________________________________________________ 密集_2(密集)(无,30)2910

我尝试过(但不工作)的代码是:

newModel = baseModel

base_output = baseModel.get_layer('dense_2').output
input_2 = Input(shape=(n_steps_in, n_features))

multiply = Multiply()([base_output,input_2])

new_output = Dense(30)(multiply)

newModel = Model(inputs=[input_1,input_2], outputs=new_output)

newModel.summary()

我收到错误消息:“TypeError:Model 的输入层必须是 InputLayer 对象。收到的输入:[, ]。输入 0(基于 0)源自层类型 Dense。”。关于我所缺少的任何建议?提前致谢。

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    行内

    newModel = Model(inputs=[input_1,input_2], outputs=new_output)
    

    您在哪里定义了“input_1”。错误是因为此变量未定义

    根据你的情况,你应该使用

    input_1=baseModel.input
    

    【讨论】:

    • 我想在新模型中有两个输入(基础模型的初始输入:input_1 + 新定义的 input_2。
    • 使用 input_1=baseModel.input
    • 太棒了!谢谢。
    【解决方案2】:

    您缺少来自 baseModel 的输入。 试试:

    base_input = baseModel.input
    base_output = baseModel.get_layer('dense_2').output
    input_2 = Input(shape=(n_steps_in, n_features))
    
    multiply = Multiply()([base_output,input_2])
    
    new_output = Dense(30)(multiply)
    
    newModel = Model(inputs=[base_input, input_2], outputs=new_output)
    
    newModel.summary()
    

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2019-05-17
      • 2018-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 2019-03-03
      • 2021-06-24
      相关资源
      最近更新 更多