Подача ввода в кераты Последовательная модель - PullRequest
0 голосов
/ 04 марта 2019

Я работаю над прогнозированием временных рядов с Керасом.У меня есть 10 временных шагов в моих входных данных, которые имеют форму (2688, 10, 1), то есть train_x.shape и train_y.shape (2688, 10, 1).Я получаю следующую ошибку, когда пытаюсь вставить ее в модель.

ValueError: Error when checking target: expected activation_1 to have 2 dimensions, but got array with shape (2688, 10, 1)

Форма ввода, которую я задаю первому слою lstm: input_shape=(1, time_steps) **

Правильно ли я меняю поезд_й?

**

    time_steps=10
    train_x = np.reshape(train_x, (train_x.shape[0], train_x.shape[1], 1))
    train_y = np.reshape(train_y, (train_y.shape[0], train_y.shape[1], 1))

    # lstm model
    model = Sequential()
    model.add(LSTM(128, input_shape=(time_steps, 1), return_sequences=True))
    model.add(LSTM(64))
    model.add(Dense(1))
    model.add(Activation('linear'))

    model.compile(loss='mse', optimizer='adam')
    history = model.fit(train_x, train_y, epochs=10, validation_data=(test_x, 
    test_y), batch_size=64, verbose=1)

Ответы [ 2 ]

0 голосов
/ 04 марта 2019
train_x = np.reshape(train_x, (train_x.shape[0], train_x.shape[1], 1))
train_y = np.reshape(train_y, (train_y.shape[0], train_y.shape[1], 1)

Я думаю, что здесь ошибка, вы должны были указать временные интервалы между shape [0] и shape [1], т.е. ..

train_x = np.reshape(train_x, (train_x.shape[0], 10,train_x.shape[1]))
train_y = np.reshape(train_y, (train_y.shape[0],10, train_y.shape[1]))

Здесь значение «10» обозначаетвременные шаги!

0 голосов
/ 04 марта 2019

если вы ожидали фигуру (2688, 10, 1), то это не может быть input_shape = (1, time_steps).Должен input_shape = (time_steps, 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...