2016-11-29 3 views
1

Ich habe gerade begonnen, Keras zu verwenden. Ich bin auf ein Problem gestoßen, wie man mehrere Ausgaben von vorherigen Schichten einer aufeinander folgenden lstm Schicht zuführt. Mein Modell (Teil) ist wie folgt:Wie füge ich mehrere Ausgänge der vorherigen Schicht zu einer aufeinander folgenden lstm Schicht

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,)) 

Jetzt ist mein Problem, wie alle oben genannten Ausgänge zu einem LSTM zu füttern? die input_dim sollte wie (batch_size, number_of_previous_outputs, 128) sein

+0

Sind Sie in dieser Frage immer noch interessiert? Weil ich denke, dass ich die Lösung gefunden habe? –

+0

@ Marcin Możejko Entschuldigung für die späte Antwort. Ich habe meine neurale Netzwerkstruktur verändert. Aber ich bin immer noch an Ihren Lösungen interessiert. –

Antwort

1

Sie können eine Verschmelzungsschicht tun (https://keras.io/getting-started/sequential-model-guide/#the-merge-layer). Entweder mit concat oder mit sum to und dann Feed der Merge-Layer in die lstm.

Codebeispiel:

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

danke für Ihre Antwort. Ich bin verwirrt über die Form Ihrer fusion_output-Ebene. Die Form von output_1 ist (batch_size, output_dim), und ich brauche die Form von merged_output (batch_size, number_of_previous_output, output_dim). @Thomas Pinetz –

+0

Sie können eine Umformungsschicht hinzufügen, um die gewünschte Ausgabe zu erzielen. https://keras.io/layers/core/#reshape –

Verwandte Themen