首页 文章

Keras - 在顺序模型的后期使用部分输入

提问于
浏览
2

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

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

我怎么能用Keras做到这一点?我可以输入不是矩形的输入吗?

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

我发现似乎有相关的this issue但是我没有得到他们如何拆分输入并在稍后将中间输出合并第二部分 .

1 回答

  • 2

    您需要将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])
    

    希望这可以帮助!

相关问题