Я запускаю последовательность для последовательности модели LSTM, но у меня есть проблемы с формой моих массивов. У меня мало опыта с LSTM.
Мой размер окна 33, и я хочу, чтобы мой вывод был последовательностью из 11 точек данных.
Мой код:
def get_window_data2(data, window, steps):
X = []
y = []
scaler = MinMaxScaler(feature_range=(0, 1))
data = scaler.fit_transform(data.reshape(-1, 1))
for i in range(len(data) - window - 1):
X.append(data[i : i + window])
y.append(data[i + window + 1: i + window + 1 + steps])
X = np.asarray(X)
y = np.asarray(y)
return X, y, scaler
window_size = 33
steps_size = 11
X, y, scaler = get_window_data2(data['denormalized_glucose_value'].values, window_size, steps_size)
test_split = int(data.shape[0] * 0.8)
X_train = X[:test_split]
X_test = X[test_split:]
y_train = y[:test_split]
y_test = y[test_split:]
model = Sequential()
model.add(LSTM(50, input_shape=(window_size, 1))) # 50neurons, and and window_size = 50
model.add(Dropout(0.2))
model.add(Dense(11, activation="sigmoid"))
model.compile(loss="mse", optimizer="adam")
model.fit( X_train, y_train, epochs=20, batch_size=10, validation_data=(X_test, y_test), verbose=2, shuffle=False)
Я получаю следующую ошибку: Ошибка при проверке цели: ожидается, что плотность_4 будет иметь форму (11,), но получен массив с формой (1,)
Как я могу изменить мою модель, чтобы она вывела массив размером 11?