Kerasで複数の入力や出力を持つモデル(多入力・多出力モデル)を作成する場合、Functional APIを用いるのが一般的です。Sequential APIでは単一の入力・出力しか扱えないため、このような複雑なモデル構造には適していません。
以下では、複数入力・出力モデルの構築方法を、具体的なコード例とともに詳しく解説します。
1. 基本構成
KerasのFunctional APIでは、以下の流れで多入力・多出力モデルを構築します:
-
複数の
Inputレイヤーを定義 -
各入力に対して個別に処理を行うレイヤーを定義
-
必要に応じて結合(
Concatenate)や共有処理を追加 -
複数の出力レイヤーを定義
-
Model(inputs=[...], outputs=[...])で統合
2. コード例:2つの入力と2つの出力を持つモデル
例:顧客情報と購入履歴から、購買確率とユーザータイプを予測するモデル
3. モデルの概要表示
これにより、各入力・出力の接続構造が可視化されます。
4. 学習データの準備と学習
学習時は、それぞれの入力・出力に対応するデータを以下のように渡します:
5. まとめ
-
複数入力・出力モデルはFunctional APIで柔軟に構築できる。
-
入力は
Input()で複数定義し、処理後に結合や並行処理を行う。 -
出力も複数定義し、個別の損失関数や評価指標を設定可能。
-
学習時には
dict形式でデータを渡すことで、入出力を正確にマッピングできる。
生成日:2025/05/22