Построение слоев keras включает в себя указание формы пройденного массива, здесь форму обучаемого массива составляет (3,2) с 1607 выборками,
input_shape = (3,2)
X = LSTM(124, activation = 'sigmoid', name='layer1', dropout = 0.4) (temp)
Если вы хотите использовать составной LSTM, вы можете использовать это
input_shape = (3,2)
X = LSTM(124, activation = 'sigmoid', name='layer1', dropout = 0.4,return_sequences=True) (temp)
X = LSTM(64, activation = 'sigmoid', name='layer2', dropout = 0.4) (X)
редактировать
def create_model():
model = keras.models.Sequential()
model.add(keras.layers.CuDNNLSTM(512, input_shape=(3,2), return_sequences=True, name='inputlstm1'))
model.add(keras.layers.Dropout(0.2))
model.add(keras.layers.CuDNNLSTM(512, return_sequences=True,name='lstm2'))
model.add(keras.layers.Dropout(0.2))
# The last layer of Stacked LSTM need not to return the input sequences
model.add(keras.layers.CuDNNLSTM(512,name='lstm3'))
model.add(keras.layers.Dropout(0.2))
model.add(keras.layers.Dense(32, activation='relu', name='dense1'))
model.add(keras.layers.Dropout(0.2))
model.add(keras.layers.Dense(1, activation='softmax', name='denseoutput2'))
# Compile model
model.compile(
loss='mse',
optimizer='adam',
metrics=['accuracy'],
)
return model