Последовательность модели LSTM в последовательность - PullRequest
0 голосов
/ 14 января 2019

Я запускаю последовательность для последовательности модели 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?

...