Разделение данных для временных рядов seq2seq - PullRequest
0 голосов
/ 07 ноября 2019

Я не могу понять, как разделить данные временных рядов для модели seq2seq. Данные выглядят следующим образом -

    date    count
0   2017-05-31  1
1   2017-06-25  1
2   2017-07-01  1
3   2017-08-29  1
4   2017-09-06  2

Предположим, я хочу сделать прогноз на следующие 4 недели, и мои данные с 2017-01-01 по 2019-10-31.

Я бы хотелзнать, что разделение идет в кодировщик, что идет в декодер, и что будет целью для обучения + проверки. Аналогично, для тестирования.

Предварительная (потому что я не знаю, верна ли она) конфигурация модели -

# Encoder

encoder_inputs = tf.keras.layers.Input(shape=(None, 1))
encoder = tf.keras.layers.LSTM(HIDDEN_UNITS, dropout=0.2, return_state=True)
encoder_outputs, state_h, state_c = encoder(encoder_inputs)

encoder_states = [state_h, state_c]

# Decoder

decoder_inputs = tf.keras.layers.Input(shape=(None, 1))
decoder = tf.keras.layers.LSTM(HIDDEN_UNITS, dropout=0.2, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder(decoder_inputs, initial_state=encoder_states)

decoder_dense = tf.keras.layers.Dense(1)
decoder_outputs = decoder_dense(decoder_outputs)

model = tf.keras.models.Model([encoder_inputs, decoder_inputs], decoder_outputs)
model.summary()
...