Keras中如何處理多輸入和多輸出的模型

小樊
109
2024-03-18 11:17:50

在Keras中處理多輸入和多輸出的模型可以通過使用Model類來實(shí)現(xiàn)。下面是一個(gè)簡(jiǎn)單的例子:

from keras.layers import Input, Dense
from keras.models import Model

# 定義兩個(gè)輸入
input1 = Input(shape=(10,))
input2 = Input(shape=(5,))

# 寬度為10的全連接層
x1 = Dense(10, activation='relu')(input1)
# 寬度為5的全連接層
x2 = Dense(5, activation='relu')(input2)

# 合并兩個(gè)輸入
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')

# 訓(xùn)練模型
model.fit([input_data1, input_data2], [output_data1, output_data2], epochs=10, batch_size=32)

在上面的例子中,我們首先定義了兩個(gè)輸入input1input2,然后分別通過全連接層進(jìn)行處理,將它們合并后再通過輸出層得到兩個(gè)輸出output1output2。最后我們使用Model類將輸入和輸出組合成一個(gè)模型,并編譯、訓(xùn)練模型。

0