Как предсказать новый ряд данных с помощью обученной модели Keras GRU? - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь использовать обученную модель последовательности Keras (GRU), чтобы предсказать некоторые новые выборки данных, но у меня возникли некоторые проблемы при создании генератора временных рядов.

В процессе обучения был проверен набор проверкииспользуя model.predict_generator(), который использовал генератор Python, созданный keras.preprocessing.sequence.TimeseriesGenerator() ( link ) в качестве входных данных.Я хотел повторить процесс с новым набором тестов, но обнаружил, что TimeseriesGenerator() требует ввода данных и целей.Но в этом случае я ожидаю получить цели (т.е. y_test) с помощью функции прогнозирования.

Упрощенная версия моего обучающего кода выглядит следующим образом:

training_generator = TimeseriesGenerator(X_train, y_train, length=timesteps * sampling_rate, sampling_rate=sampling_rate, batch_size=batch_size, shuffle=shuffle_data)
test_generator = TimeseriesGenerator(X_test, y_test, length=timesteps * sampling_rate, sampling_rate=sampling_rate, batch_size=batch_size, shuffle=shuffle_data)

model.fit_generator(generator=training_generator, epochs=epochs, use_multiprocessing=False, verbose=2)
y_test_pred = model.predict_generator(generator=test_generator)

Я такжеподумал о написании собственного генератора самостоятельно, но тогда было бы очень трудно проверить эквивалентность между этим генератором и официальным генератором временных рядов.

Есть ли способ использовать TimeseriesGenerator() без указания targets?

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 июня 2019

Простой обходной путь - создание фиктивных целей, поскольку predict_generator будет игнорировать их:

X_test =  your new test data
y_dummy = np.zeros((X_test.shape[0], ))
test_generator = TimeseriesGenerator(X_test, y_dummy, length=timesteps * sampling_rate, sampling_rate=sampling_rate, batch_size=batch_size, shuffle=shuffle_data)
y_test_pred = model.predict_generator(generator=test_generator)

Вам следует настроить форму y_dummy, если ваши надписи многомерны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...