Ввод для LSTM с использованием одного горячего кодирования - PullRequest
2 голосов
/ 19 июня 2019

Прогнозирование временных рядов: мои данные содержат категориальные значения и для прогнозирования следующего значения.Категориальные значения преобразуются в одно значение горячего кодирования с использованием керас.

[[0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 ...
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]]

Форма закодированных значений:

(824,8734)

Данные содержат 1 выборку с 824 шагами по времени для прогнозирования следующегошаг по времени.

n_steps=3
n_features=1

Какая форма ввода для LSTM?

I tried
X.shape = (824, 8734, 3, 1)
y.shape=(824,8734)
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(n_steps, n_features)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
# fit model
model.fit(X, y, epochs=20, verbose=0)


ValueError: Input 0 is incompatible with layer lstm_3: expected ndim=3, found ndim=4

1 Ответ

1 голос
/ 19 июля 2019
X_train=X_train.reshape(X_train.shape[0],1,X_train.shape[1])
 and input shape is
LSTM(data_dim, input_shape=(time_steps,X_train.shape[2]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...