как получить значения, предсказанные для более длительного времени, используя функцию tenorsflow next_batch - PullRequest
0 голосов
/ 09 октября 2018

Я работаю над одномерным прогнозированием энергопотребления временных рядов с использованием LSTM.Набор данных имеет 48 значений каждый день, то есть значения, взятые каждые полчаса. Когда я строю модель, она только предсказывает лучше для первых одного или двух шагов, а затем выравнивается до постоянной.Я хочу предсказать значения для следующих 144 временных интервалов.Моя функция next_batch () имеет следующий код:

def next_batch(training_data,batch_size,steps):

    rand_start = np.random.randint(0,len(training_data)-steps) 
    y_batch = np.array(training_data[rand_start:rand_start+steps+1]).reshape(1,steps+1)

    return y_batch[:, :-1].reshape(-1, steps, 1), y_batch[:, 1:].reshape(-1, steps, 1) 

enter image description here

Я хочу прогнозировать значения для более длительного периода, то есть для следующих двух-трех дней.Предложить изменения в коде.

num_inputs = 1
num_time_steps = 48
num_neurons = 100
num_outputs = 1
learning_rate = 0.02
num_train_iterations = 4000
batch_size = 48

with tf.Session() as sess:
    saver.restore(sess, "./ex_time_series_model")
    train_seed = list(train_scaled[-121:])
    for iteration in range(121):
        X_batch = np.array(train_seed[-num_time_steps:]).reshape(1, num_time_steps, 1)
        y_pred = sess.run(outputs, feed_dict={X: X_batch})
        train_seed.append(y_pred[0, -1, 0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...