Я реализую модель lstm с кератами.
В моем наборе данных 11200 строк и 5 столбцов. Каждые данные - это вектор. Форма набора данных (11200, 5, 54) выглядит следующим образом.
col1 col2 col3 col4 col5
[1,3,...,-999] [2,4,...,-999] [3,4,...,-999] [5,6,...,-999] [4,5,...,-999]
[0,2,...,-999] [1,5,...,-999] [1,24,...,-999] [11,7,...,-999] [-1,4,...,-999]
...
[0,2,...,5] [1,5,...,8] [1,24,...,6] [11,7,...,5] [-1,4,...,2]
Длина каждого вектора, подобного этому [1,3, ..., - 999], равна 54.
Цель - логический вектор размера (11200, 1), подобный этому
1 T
2 F
... ...
11200 F
Я создал свою модель так:
X_train, X_test, y_train, y_test = train_test_split(data,target, test_size=0.2, random_state=1)
batch_size = 32
timesteps = None
output_size = 1
epochs=120
inputs = Input(batch_shape=(batch_size, timesteps, output_size))
lay1 = LSTM(20, stateful=True, return_sequences=True)(inputs)
output = Dense(units = output_size)(lay1)
regressor = Model(inputs=inputs, outputs = output)
regressor.compile(optimizer='adam', loss = 'mae')
regressor.summary()
for i in range(epochs):
print("Epoch: " + str(i))
regressor.fit(X_train, y_train, shuffle=False, epochs = 1, batch_size = batch_size)
regressor.reset_states()
Проблема в том, что у меня есть эта ошибка:
ValueError: Error when checking input: expected input_1 to have shape (None, 1) but got array with shape (5, 54).
Что не так? Вход или выход? Как я могу кормить не того?
Спасибо.