Keras Conv1d Форма ввода / Параметры для данных запаса - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь протестировать CNN Keras 1DConv, чтобы помочь предсказать временные ряды / данные о запасах.Что-то вроде N акций будет иметь данные OHLCV для n временных шагов.Например, для акций N = 1 я пытаюсь предсказать только цену закрытия следующего периода.Скажем, используя одну акцию, у меня есть 100 периодов со значениями OHLCV, поэтому X.shape = (100, 5), а y.shape = (100, 1).

Я пытаюсь добавить слой в качестве входных данных:

model.add(Conv1D(filters=50, kernel_size=7,activation='relu', data_format='channels_last',input_shape=(100,5)))

, но продолжаю получать ошибки в отношении формы ввода (когда я пытаюсь подогнать данные), либо не являюсьправильные размеры или передача формы в неправильном порядке.Я пытался изменить массивы, чтобы добавить дополнительное измерение, но пока ничего не получалось.Как мне отформатировать данные, и, пожалуйста, дайте мне знать, если у вас есть какие-либо предложения по поводу этой задачи, касающейся масштабирования, параметров (потеря, оптимизатор, активация, data_format).Как каналы играют в это?

Приветствия!

model.fit(X_train, y_train, epochs=nb_epoch, validation_data=(X_test, y_test), batch_size=16)

ValueError: Error when checking target: expected conv1d_1 to have 3 dimensions, but got array with shape (100, 5)

1 Ответ

0 голосов
/ 24 сентября 2018

Conv1D ожидает 3D-вход.

У вас есть 2D-вход.

Если вы измените форму таким образом

x = x.reshape(batch, steps, channels)

см. ссылка для получения дополнительной информации.

Это должно работать.

Если вы хотите получить более подробный ответ, пожалуйста, добавьте оставшуюся часть кода, чтобы его было легче воспроизвести.

...