Keras:单输入层,用于重复的多输入

时间:2018-07-13 21:22:04

标签: python tensorflow model keras layer

因此,我得到了具有6个相同形状的相同输入的多输入模型。现在,如果必须使用此模型,则必须将输入数据与输入层的总数(即6)相乘。我想知道是否可以在此之上添加另一层并可以传递将与所有这6个输入。我不确定如何做到这一点!有什么想法吗?

image

1 个答案:

答案 0 :(得分:1)

问题是这样的:我有一个“ BASE” 多输入模型,其中所有输入都是相同的,因为此“ BASE” 模型只是一个组合共享相同类型输入的多个模型!现在,当使用此“ BASE” 模型进行分类时,我必须为每个输入层提供 [input_data x“ total_inputs”] ,这是我不想要的要做的事,当分类几百万个句子时说!

因此,理想的解决方案是仅将一个输入与所有“ BASE” 模型输入连接起来!

好的,这是完成的过程:

  1. 创建一个新的top_model,它将使用单个输入并生成多个相同的输出。这可以通过Lambda层来完成。

    single_input = layers.Input(input_shape)
    multi_output = layers.Lambda(lambda x: [x] * total_numbers_of_base_inputs)(single_input)
    top_model = Model(inputs=single_input, outputs=multi_output)
    
  2. 使用top_model输入和下面的multi_input_base_model来创建新的单输入模型。

    new_model = Model(inputs=top_model.input, outputs=multi_input_base_model(top_model.output))