Ich habe das folgende Netzwerk erstellt. Die Idee ist, die Ausgänge der left
und right
zu kombinieren und dann an ein LSTM-Modell zu senden.Keras: Layer zusammenführen/verketten: TypeError: __init __() hat mehrere Werte für das Argument 'Achse'
EMBED_DIM = 4
look_back = 6
feature_num = 2
ENCODE_DIM = 676
left = Sequential()
left.add(Dense(EMBED_DIM,input_shape=(ENCODE_DIM,)))
left.add(RepeatVector(look_back))
left.add(Reshape((look_back,EMBED_DIM)))
right = Sequential()
right.add(Lambda(lambda x: x,input_shape=(look_back,feature_num)))
# create and fit the LSTM network
model = Sequential()
model.add(Concatenate([left, right], axis = 2,input_shape=(look_back, EMBED_DIM + feature_num)))
model.add(LSTM(8, input_shape=(look_back,feature_num + EMBED_DIM)))
model.add(Dense(2))
model.compile(loss='mean_squared_error', optimizer='adam')
Ich versuche, die Ausgabe von links und rechts, dann senden Sie den neuen Tensor zum LSTM Modell verketten.
jedoch bekam ich folgende Fehlermeldung:
TypeError Traceback (most recent call last)
<ipython-input-156-275f5597cdad> in <module>()
---> 37 model.add(Concatenate([left, right], axis = 2,input_shape=(look_back, EMBED_DIM + feature_num)))
38 model.add(LSTM(8, input_shape=(look_back,feature_num + EMBED_DIM)))
39
TypeError: __init__() got multiple values for argument 'axis'
Jede Idee, was ich falsch gemacht habe? Kann ich eine Concatenate
Schicht als erste Schicht eines Modells hinzufügen? Vielen Dank!
Danke! Aber ich möchte, dass die Gewichte in links, rechts und Modell alle zusammen in einer Iteration ausgewertet werden. h. ich möchte, dass der Fehler in der endgültigen Ausgabe sich nach links und rechts ausbreiten kann, und ihre Gewichte anpassen. Würde der obige Ansatz das tun? – Edamame
Ja. Alle Gewichte sind geteilt. Trainiere das komplette Modell, welches in diesem Code 'fullModel' ist. –
Vielen Dank! Wirklich hilft viel! – Edamame