複数入力モデルの定義
場合によっては、目的のモデル構造を実現するには sequential API だけでは柔軟性が足りず、代わりに functional API を使う必要があります。たとえば、異なるアーキテクチャの2つのモデルを同時に学習させたい場合は、functional API が必要です。この演習では、その方法を確認します。また、.summary() メソッドを使って、結合したモデルのアーキテクチャを確認します。
keras は tensorflow からインポート済みです。さらに、1つ目と2つ目のモデルの入力層はそれぞれ m1_inputs、m2_inputs として定義されています。2つのモデルは同じアーキテクチャですが、片方は最初の層で sigmoid 活性化関数を、もう片方は relu を使用している点が異なります。
この演習はコースの一部です
Introduction to TensorFlow in Python
演習の手順
- モデル1では、入力層を第1層に渡し、第1層を第2層に渡します。
- モデル2でも、入力層を第1層に渡し、第1層を第2層に渡します。
add()演算を使って、モデル1とモデル2の第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())