Python 如何将两个不同模型的输出作为输入传递给keras中的另一个模型?

Python 如何将两个不同模型的输出作为输入传递给keras中的另一个模型?,python,keras,deep-learning,Python,Keras,Deep Learning,我正试图建立一种对抗网络。我已经训练了一个鉴别器。现在我想把两个独立的VGG16模型的输出连接到这个鉴别器。我试图避免重新训练鉴别器,而只是简单地加载预先训练的权重,这就是为什么我想加载模型,然后以某种方式将其与两个VGG16模型连接起来 如果有一种方法,我可以加载重量的鉴别器部分,只有以某种方式,这将是伟大的以及 抱歉,如果我的查询不符合指导原则,这是我在stackoverflow上的第二篇文章 编辑:这是我为不加载权重的整体结构编写的代码,也就是说,我将从头开始训练 sat/street提取

我正试图建立一种对抗网络。我已经训练了一个鉴别器。现在我想把两个独立的VGG16模型的输出连接到这个鉴别器。我试图避免重新训练鉴别器,而只是简单地加载预先训练的权重,这就是为什么我想加载模型,然后以某种方式将其与两个VGG16模型连接起来

如果有一种方法,我可以加载重量的鉴别器部分,只有以某种方式,这将是伟大的以及

抱歉,如果我的查询不符合指导原则,这是我在stackoverflow上的第二篇文章

编辑:这是我为不加载权重的整体结构编写的代码,也就是说,我将从头开始训练

sat/street提取器是学习功能的VGG16网络

    sat_fv = sat_extractor.layers[-1].output
    str_fv = street_extractor.layers[-1].output

    deep_sat_feat = Reshape((32, 32, 1))(sat_fv)
    deep_street_feat = Reshape((32, 32, 1))(str_fv)
    deep_merged = concatenate([deep_sat_feat, deep_street_feat], axis=3)

    deep_act_1 = conv2d_block(deep_merged)

    flat = Flatten()(deep_act_1)
    dense = Dense(4096)(flat)
    act = LeakyReLU()(dense)
    dense = Dense(1024)(act)
    act = LeakyReLU()(dense)
    dense = Dense(128)(act)
    act = LeakyReLU()(dense)

    den_3 = Dense(1)(act)
    act_5 = Activation("sigmoid")(den_3)

    generator_model = Model(inputs=[sat_extractor.input,street_extractor.input], outputs=[sat_fv,str_fv,act_5])
    discriminator_model = Model(inputs=[sat_extractor.input,street_extractor.input], outputs=[act_5])
    generator_model.compile('Adam',loss=['categorical_crossentropy','categorical_crossentropy','binary_crossentropy'],loss_weights=[1/15,1/15,1/3])
    discriminator_model.compile(loss="binary_crossentropy", optimizer=Adam(0.00001), metrics=["accuracy"])

您希望如何组合这些参数?简单地连接它们?我还没有考虑过,所以我确定。推荐的方法是什么?嘿@UmairKhawaja,向我们提供您已经做过的事情会很有帮助。@valkon我已经把它添加到了帖子中,我想得到的是,我有一个经过培训的鉴别器,我只想把它放在两个VGG16模型的前面,通过将这些模型的输出作为输入传递给鉴别器