2017-06-18 74 views
1

我正在訓練CNN。我的輸入是一個圖像和一些元數據。我想訓練一個僅在卷積階段查看圖像的CNN,然後使用卷積階段的輸出和最終密集層中的元數據。Keras - 在順序模型的後期使用部分輸入

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

我該如何與凱拉斯做到這一點?我可以提供非矩形形狀的輸入嗎?

例如,如果圖像是(255, 255, 3)和元數據(10)這將如何工作?

我發現this issue似乎相關,但我沒有得到他們如何拆分輸入和合並第二部分與中間輸出後。

回答

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]) 

希望這有助於!

+0

謝謝,我由於沒有使用功能API而陷入困境。 – Guig

相關問題