始める無料で始める

複数入力モデルの定義

場合によっては、目的のモデル構造を実現するには sequential API だけでは柔軟性が足りず、代わりに functional API を使う必要があります。たとえば、異なるアーキテクチャの2つのモデルを同時に学習させたい場合は、functional API が必要です。この演習では、その方法を確認します。また、.summary() メソッドを使って、結合したモデルのアーキテクチャを確認します。

kerastensorflow からインポート済みです。さらに、1つ目と2つ目のモデルの入力層はそれぞれ m1_inputsm2_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())
コードを編集して実行