在Keras中處理多輸入和多輸出的模型可以通過使用Model
類來實現。下面是一個簡單的例子:
from keras.layers import Input, Dense
from keras.models import Model
# 定義兩個輸入
input1 = Input(shape=(10,))
input2 = Input(shape=(5,))
# 寬度為10的全連接層
x1 = Dense(10, activation='relu')(input1)
# 寬度為5的全連接層
x2 = Dense(5, activation='relu')(input2)
# 合并兩個輸入
x = keras.layers.concatenate([x1, x2])
# 輸出層
output1 = Dense(1, activation='sigmoid')(x)
output2 = Dense(1, activation='relu')(x)
# 定義模型
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, batch_size=32)
在上面的例子中,我們首先定義了兩個輸入input1
和input2
,然后分別通過全連接層進行處理,將它們合并后再通過輸出層得到兩個輸出output1
和output2
。最后我們使用Model
類將輸入和輸出組合成一個模型,并編譯、訓練模型。