【问题标题】:Keras - use part of the input at later stage in sequential modelKeras - 在顺序模型的后期使用部分输入
【发布时间】:2017-11-21 01:21:56
【问题描述】:

我正在训练一个 CNN。我的输入是一张图片和一些元数据。我想训练一个仅在卷积阶段查看图像的 CNN,然后使用卷积阶段的输出和最终密集层中的元数据。

metadata -----------------
                          |-> dense -> output
image    -> Convolutions -

如何使用 Keras 做到这一点?我可以输入不是矩形的输入吗?

例如,如果图像是(255, 255, 3) 而元数据是(10),这将如何工作?

我发现 this issue 似乎相关,但我不明白他们如何拆分输入并将第二部分与中间输出合并。

【问题讨论】:

    标签: neural-network keras conv-neural-network


    【解决方案1】:

    您需要将Functional API 与多输入模型一起使用。

    一个例子可以是:

    from keras.layers import Input, Conv1D, Dense, concatenate
    #Image data
    conv_input = Input(shape=conv_input_shape)
    conv_output = Conv1D(nfilters,kernel_shape)(conv_input)
    
    #Metadata
    metadata_input = Input(shape=metadata_shape)
    
    #Merge and add dense layer
    merge_layer = concatenate([metadata_input, conv_output])
    main_output = Dense(dense_size)(merge_layer)
    
    # Define model with two inputs
    model = Model(inputs=[conv_input, metadata_input], outputs=[main_output])
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多