У меня вопрос по поводу кода LTSM Python с состоянием.
def fit_lstm(train, batch_size, nb_epoch, neurons):
X = []
y = []
for i in range(neurons, len(train)):
X.append(train[i-neurons:i, 0])
y.append(train[i,0])
X, y = np.array(X), np.array(y)
X = np.reshape(X, (X.shape[0], X.shape[1], 1))
model = Sequential()
model.add(LSTM(neurons, batch_input_shape=(batch_size, X.shape[1], 1), stateful=True))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
for i in range(nb_epoch):
model.fit(X, y, epochs=1, batch_size=batch_size, verbose=0, shuffle=False)
model.reset_states()
return model
Я написал эту функцию сам, но меня смущает формат ввода "batch_input_shape" в части model.add. Train - это набор данных для тренировки временных рядов. И я хочу использовать последние 4 значения train.value для прогнозирования следующего значения train.value. Кроме того, правильно ли написан код X = np.reshape?