定义一个多输入模型
在某些情况下,Sequential API 的灵活性不足以满足您期望的模型结构,此时需要改用 Functional API。比如,若您想将两个具有不同结构的模型联合训练,就需要使用 Functional API 来实现。本练习将演示具体做法。我们还会使用 .summary() 方法查看联合模型的结构。
注意,keras 已从 tensorflow 中为您导入。此外,第一个模型和第二个模型的输入层分别已定义为 m1_inputs 和 m2_inputs。请注意,这两个模型的结构相同,但其中一个在第一层使用 sigmoid 激活函数,另一个使用 relu。
本练习是课程的一部分
Python 中的 TensorFlow 入门
练习说明
- 将模型 1 的输入层传给其第一层,并将模型 1 的第一层传给其第二层。
- 将模型 2 的输入层传给其第一层,并将模型 2 的第一层传给其第二层。
- 使用
add()操作合并模型 1 和模型 2 的第二层。 - 完成函数式模型的定义。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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())