Советы по формированию данных для lstm - PullRequest
1 голос
/ 12 июля 2020

У меня есть временной ряд из 933 матриц, каждая матрица - это матрица 8x10. Это мой X (ввод). Итак, X имеет форму (933, 8, 10). Y (выход) - это временной ряд из 933 векторов, каждый вектор является 5-мерным вектором. Итак, Y имеет форму (933, 1, 5).

Я также могу изменить форму данных (нужно ли?), Например, X - это (933, 80), а Y - (933, 5), потому что на самом деле в В конце концов, это всего лишь 933 выборки из набора из 80 чисел для ввода (представьте 80 пикселей в матрице) и 933 выборки из набора из 5 чисел для вывода.

Я пишу CNN-LSTM. Я до сих пор не знаю размер поезда / теста, давайте пока предположим, что я хочу использовать все 933 образца для обучения. Моя модель:

model = Sequential()
# define CNN model
model.add(TimeDistributed(Conv2D(1, (2,2), activation='relu', padding='same', input_shape=(None,8,10))))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))
model.add(TimeDistributed(Flatten()))
# define LSTM model
model.add(LSTM(933, activation='relu', input_shape=(8,10)))       
model.add(Dense(5))
model.compile(optimizer='adam', loss='mse')
model.fit(X, Y)

Я получаю следующую ошибку: ValueError: входной тензор должен иметь ранг 4.

Мой вопрос: почему я получаю эту ошибку и как я могу ее решить?

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