У меня есть данные временных рядов.Я пытаюсь изменить форму и использовать со сверточным 1D и MaxPooling1D.
Это мой код.
#data is time series data splite for train and test
train = df.loc[:split_date, ['data']]
test = df.loc[split_date:, ['data']]
sc = MinMaxScaler()
train_sc = sc.fit_transform(train)
test_sc = sc.transform(test)
X_train = train_sc[:-1]
y_train = train_sc[1:]
X_test = test_sc[:-1]
y_test = test_sc[1:]
################### Convolution #######################
X_train_t = X_train[:, None]
X_test_t = X_test[:, None]
K.clear_session()
model = Sequential()
model.add(Conv1D(6, 1, activation='relu', input_shape=(1,1)))
model.add(MaxPooling1D(pool_size = (3)))
model.add(LSTM(3))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam' )
model.summary()
model.fit(X_train_t, y_train, epochs=400, batch_size=10, verbose=10)
y_pred = model.predict(X_test_t)
real_pred = sc.inverse_transform(y_pred)
real_test = sc.inverse_transform(y_test)
print(real_pred)
print(real_test)
Когда я запускаю его, выдает ошибку вроде этого.
ValueError: Отрицательный размерный размер, вызванный вычитанием 3 из 1 для 'max_pooling1d_1 / MaxPool' (op: 'MaxPool') с входными формами: [?, 1,1,6].
Я пытаюсьизменить, но это не работает.Это работает только когда я установил MaxPooling1D (pool_size = (1)).но я думаю, что pool_size не должен быть 1. Как исправить?