Изменить входные данные для автокодера LSTM - PullRequest
1 голос
/ 25 сентября 2019

Раньше я использовал model.add(Reshape()) от Keras, но почему-то тот же код, который работал раньше, теперь не работает.Я пытаюсь изменить входные данные для LSTM без изменения данных ранее;без использования команды np.reshape.Мой код:

def model_lstm_ae ():
    model=Sequential()
    model.add(Reshape((1,X_train_.shape[1])))
    model.add(LSTM(128, activation='relu', 
                   input_shape=(1,X_train_.shape[1]), return_sequences=True))

    model.add(LSTM(64, activation='relu', 
                   return_sequences=False))

    model.add(RepeatVector(timesteps))

    model.add(LSTM(64, activation='relu', 
                   return_sequences=True))

    model.add(LSTM(128, activation='relu', 
                   return_sequences=False))

    model.add(TimeDistributed(Dense(1)))

    model.compile(loss='mean_squared_error', 
                  optimizer=k.optimizers.Adam(lr=1e-4, amsgrad=True))

    return model

model_lstm_ae = KerasRegressor(build_fn=model_lstm_ae)
history=model_lstm_ae.fit(X_train_, X_train_, 
                          epochs=100, 
                          batch_size=256, 
                          validation_data = (X_test_, X_test_),
                          verbose = 1,
                          callbacks = [early_stopping_monitor, lr_reduce])

Однако я получаю следующую ошибку:

ValueError: The first layer in a Sequential model must get an `input_shape` or `batch_input_shape` argument.

Любые предложения о том, как заставить это работать?

1 Ответ

0 голосов
/ 26 сентября 2019

Я запускаю вашу модель (включая KerasRegressor и Reshape) с TF2 RC2 на машине с Linux.Чтобы быть уверенным, пожалуйста, предоставьте некоторые данные для ваших переменных.Я полагаю, вам просто нужно адаптировать свой импорт.

...