2016-11-29 12 views
1

Kerasを使い始めました。以前のレイヤの複数の出力を連続するレイヤにフィードする方法が問題に遭遇しました。私のモデル(部分)はちょうど以下のようなものです:前のレイヤの複数の出力を連続するlstmレイヤにフィードする方法

batch_size = 64 

output_1 = Dense(output_dim=(128,), input_dim=(200,)) 

output_2 = Dense(output_dim=(128,), input_dim=(200,)) 

output_3 = Dense(output_dim=(128,), input_dim=(200,)) 

output_4 = Dense(output_dim=(128,), input_dim=(200,)) 

私の問題は、上記のすべての出力をlstmにどのように送るかです。 input_dimは(batch_size、number_of_previous_outputs、128)のようになります。

+0

は、あなたはまだこの問題に興味がありますか?私は解決策を見つけたと思うので? –

+0

@ MarcinMożejko遅く返事を申し訳ありません。私は自分の神経ネットワーク構造を変えました。しかし、私はまだあなたのソリューションに興味があります。 –

答えて

1

マージレイヤー(https://keras.io/getting-started/sequential-model-guide/#the-merge-layer)を実行できます。 concatまたはsum toを使用して、マージレイヤーをlstmに送ります。

コード例:

merged_output = merge([output_1, output_2, output_3, output_4], mode='concat', concat_axis=1) 
lstm = LSTM(...)(merged_output) 
+0

ご返信ありがとうございます。私はあなたのmerged_output層の形状について混乱しています。 output_1の形状は(batch_size、output_dim)です。(batch_size、number_of_previous_output、output_dim)にはmerged_outputの形が必要です。 @Thomas Pinetz –

+0

希望の出力を実現するために、変形レイヤーを追加することができます。 https://keras.io/layers/core/#reshape –

関連する問題