keras lstm error: ожидается 1 массив - PullRequest
1 голос
/ 04 февраля 2020

, поэтому я хочу, чтобы сеть lstm работала на моих данных, но я получаю это сообщение:

ValueError: Ошибка при проверке ввода: ожидается, что lstm_1_input имеет форму (None, 1), но получил массив с формой (1, 557)

это мой код:

x_train=numpy.array(x_train)
x_test=numpy.array(x_test)
x_train = numpy.reshape(x_train, (x_train.shape[0], 1, x_train.shape[1]))
x_test = numpy.reshape(x_test, (x_test.shape[0], 1, x_test.shape[1]))
# create and fit the LSTM network
model = Sequential()
model.add(LSTM(50, input_shape=(1,len(x_train[0]) )))
model.add(Dense(1))
model.add(Dropout(0.2))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(x_train, numpy.array(y_train), epochs=100, batch_size=1, verbose=2)

1 Ответ

2 голосов
/ 04 февраля 2020

Вам необходимо изменить значение input_shape для слоя LSTM. Кроме того, x_train должно иметь следующий shape.

x_train = x_train.reshape(len(x_train), x_train.shape[1], 1)

Итак, измените

x_train = numpy.reshape(x_train, (x_train.shape[0], 1, x_train.shape[1]))
model.add(LSTM(50, input_shape=(1,len(x_train[0]) )))

на

x_train = x_train.reshape(len(x_train), x_train.shape[1], 1)
model.add(LSTM(50, input_shape=(x_train.shape[1], 1) )))
...