Здравствуйте, уважаемые.
Я категорически не могу понять, почему я не могу запустить обучение нейронной сети со слоями LSTM.
Прошу помощи у знающих людей.
Дано:
Keras. Данные в сыром виде лежат в SCV.
Данные через pandas подгружаются, перемножаются так как мне нужно, получается 2 набора данных в pandas для подачи на вход и ответов.
Как это выглядит:
Данные для загрузки (training_dataN ): 17290 строк, в каждой строке 4601 "цифр". 1 строка- 1 пример для обучения.
Данные для выхода (correct_dataN ): 17290 строк, в каждой строке 5 "цифр". 1 строка- 1 пример для обучения.
Вычитал, что нужно приобразовать в numpy массив. Делаю:
training_dataN = np.array(training_dataN)
correct_dataN = np.array(correct_dataN)
Так же вычитал, что нужен reshape:
training_dataN = training_dataN.reshape(1, 4601, 17290)
correct_dataN = correct_dataN.reshape(1, 5, 17290)
Подаю на вход:
model = Sequential()
model.add(LSTM(4601, input_shape= (4601, 17290), return_sequences = True))
Получаю ошибку, что ждёт иные данные или вид не тот.
Тыкал руками цифры туда-сда, менял местами, ставил переменные. В общем я на столько запутался, что если есть человек, который может на пальцах мне показать "это сюда, это туда по тому-то" - я буду очень рад. Спасибо.
freeExec, да, скорее всего 4601 это features, а 17290 это samples (одна строка - один пример), так что нужен reshape(17290, 1, 4601) и input_shape=(17290,4601).
В комментариях Александр Скуснов, freeExec дали верное направление мысли: [samples, time steps, features]
В моём случае это reshape(17290, 1, 4601) и input_shape=(17290,4601) или training_dataN.reshape(training_dataN.shape[0], 1, training_dataN.shape[1])