Слой LSTM ожидает, что входные данные будут иметь форму (batch_size, timesteps, input_dim)
.В keras вам нужно передать (timesteps, input_dim
) для аргумента input_shape.Но вы устанавливаете input_shape (9,).Эта форма не включает измерение временных шагов.Проблема может быть решена добавлением дополнительного измерения в input_shape для измерения времени.Например, добавление дополнительного измерения со значением 1 может быть простым решением.Для этого вам нужно изменить форму входного набора данных (X Train) и форму Y.Но это может быть проблематично, поскольку временное разрешение равно 1, и вы вводите одно значение, а не последовательность значений
x_train = x_train.reshape(-1, 1, 9)
x_test = x_test.reshape(-1, 1, 9)
y_train = y_train.reshape(-1, 1, 5)
y_test = y_test.reshape(-1, 1, 5)
model = Sequential()
model.add(LSTM(100, input_shape=(1, 9), return_sequences=True))
model.add(LSTM(5, input_shape=(1, 9), return_sequences=True))
model.compile(loss="mean_absolute_error", optimizer="adam", metrics= ['accuracy'])
history = model.fit(X_train,y_train,epochs=100, validation_data=(X_test,y_test))