在Keras中處理多輸入和多輸出模型可以通過Functional API來實現。下面是一個簡單的例子:
from keras.layers import Input, Dense
from keras.models import Model
# 定義輸入層
input1 = Input(shape=(10,))
input2 = Input(shape=(5,))
# 定義共享的隱藏層
shared_layer = Dense(10, activation='relu')
# 連接輸入層和隱藏層
output1 = shared_layer(input1)
output2 = shared_layer(input2)
# 定義輸出層
output1 = Dense(1, activation='sigmoid')(output1)
output2 = Dense(1, activation='sigmoid')(output2)
# 創建模型
model = Model(inputs=[input1, input2], outputs=[output1, output2])
# 編譯模型
model.compile(optimizer='adam', loss='binary_crossentropy')
# 訓練模型
model.fit([input_data1, input_data2], [output_data1, output_data2], epochs=10)
在這個例子中,我們定義了兩個輸入層input1
和input2
,一個共享的隱藏層shared_layer
,以及兩個輸出層output1
和output2
。最后我們使用Model
類將輸入層和輸出層連接起來,再編譯模型并訓練。
在訓練模型時,我們需要將輸入數據和輸出數據分別傳入fit
方法中。input_data1
和input_data2
是兩個輸入數據,output_data1
和output_data2
是兩個輸出數據。