開始使用免費開始

定義多重輸入模型

有些情況下,Sequential API 的彈性不夠,無法滿足你想要的模型架構,此時就需要改用 Functional API。比方說,你想同時訓練兩個架構不同的模型,就得用 Functional API 來完成。本練習將示範如何做到,並使用 .summary() 方法檢視合併後模型的架構。

注意:keras 已經從 tensorflow 匯入。另外,第一個與第二個模型的輸入層分別已定義為 m1_inputsm2_inputs。兩個模型的架構相同,但其中一個在第一層使用 sigmoid 活化函式,另一個使用 relu

本練習屬於課程

Python 的 TensorFlow 入門

檢視課程

練習說明

  • 將模型 1 的輸入層傳給其第一層,並將模型 1 的第一層傳給其第二層。
  • 將模型 2 的輸入層傳給其第一層,並將模型 2 的第一層傳給其第二層。
  • 使用 add() 將模型 1 與模型 2 的第二層合併。
  • 完成 Functional 模型的定義。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# For model 1, pass the input layer to layer 1 and layer 1 to layer 2
m1_layer1 = keras.layers.Dense(12, activation='sigmoid')(____)
m1_layer2 = keras.layers.Dense(4, activation='softmax')(____)

# For model 2, pass the input layer to layer 1 and layer 1 to layer 2
m2_layer1 = keras.layers.Dense(12, activation='relu')(____)
m2_layer2 = keras.layers.Dense(4, activation='softmax')(____)

# Merge model outputs and define a functional model
merged = keras.layers.add([m1_layer2, ____])
model = keras.Model(inputs=[____, m2_inputs], outputs=____)

# Print a model summary
print(model.summary())
編輯並執行程式碼